less 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,4 +2,5 @@
2
2
  *.gem
3
3
  .bundle
4
4
  *.rbc
5
+ .yardoc
5
6
  Gemfile.lock
data/less.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
23
23
  s.require_paths = ["lib"]
24
24
 
25
- s.add_dependency "therubyracer", "~> 0.9.0"
25
+ s.add_dependency "therubyracer", "~> 0.9.1"
26
26
  s.add_development_dependency "rake", "~> 0.9.1"
27
27
  s.add_development_dependency "rspec", "~> 2.0"
28
28
  end
data/lib/less.rb CHANGED
@@ -2,6 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module Less
5
+
5
6
  require 'v8'
6
7
  require 'pathname'
7
8
  require 'less/parser'
data/lib/less/parser.rb CHANGED
@@ -1,9 +1,29 @@
1
1
 
2
- require 'v8'
3
-
4
2
  module Less
3
+
4
+ # Utility for calling into the JavaScript runtime.
5
+ module CallJS
6
+
7
+ # @private
8
+ # Wrap JavaScript invocations with uniform error handling
9
+ #
10
+ # @yield code to wrap
11
+ def calljs
12
+ yield
13
+ rescue V8::JSError => e
14
+ raise ParseError.new(e)
15
+ end
16
+ end
17
+
18
+ # Convert lesscss source into an abstract syntax Tree
5
19
  class Parser
20
+ include CallJS
6
21
 
22
+ # Construct and configure new Less::Parser
23
+ #
24
+ # @param [Hash] opts configuration options
25
+ # @option opts [Array] :paths a list of directories to search when handling \@import statements
26
+ # @option opts [String] :filename to associate with resulting parse trees (useful for generating errors)
7
27
  def initialize(options = {})
8
28
  stringy = {}
9
29
  options.each do |k,v|
@@ -12,33 +32,53 @@ module Less
12
32
  @parser = Less.Parser.new(stringy)
13
33
  end
14
34
 
35
+ # Convert `less` source into a abstract syntaxt tree
36
+ # @param [String] less the source to parse
37
+ # @return [Less::Tree] the parsed tree
15
38
  def parse(less)
16
- error,tree = nil
17
- @parser.parse(less, lambda {|e, t| error = e; tree = t})
18
- return Tree.new(tree) if tree
19
- rescue V8::JSError => e
20
- raise ParseError.new(e)
39
+ calljs do
40
+ error,tree = nil
41
+ @parser.parse(less, lambda {|e, t|
42
+ error = e; tree = t
43
+ })
44
+ Tree.new(tree) if tree
45
+ end
21
46
  end
22
-
23
47
  end
24
48
 
49
+ # Abstract LessCSS syntax tree Less. Mainly used to emit CSS
25
50
  class Tree
51
+ include CallJS
52
+ # Create a tree from a native javascript object.
53
+ # @param [V8::Object] tree the native less.js tree
26
54
  def initialize(tree)
27
55
  @tree = tree
28
56
  end
29
57
 
58
+ # Serialize this tree into CSS.
59
+ # By default this will be in pretty-printed form.
60
+ # @param [Hash] opts modifications to the output
61
+ # @option opts [Boolean] :compress minify output instead of pretty-printing
30
62
  def to_css(options = {})
31
- @tree.toCSS(options)
63
+ calljs do
64
+ @tree.toCSS(options)
65
+ end
32
66
  end
33
67
  end
34
-
68
+
69
+ # Thrown whenever an error occurs parsing
70
+ # and/or serializing less source. It is intended
71
+ # to wrap a native V8::JSError
35
72
  class ParseError < StandardError
36
-
73
+
74
+ # Copies over `error`'s message and backtrace
75
+ # @param [V8::JSError] error native error
37
76
  def initialize(error)
38
77
  super(error.message)
39
78
  @backtrace = error.backtrace
40
79
  end
41
-
80
+
81
+ # @return [Array] the backtrace frames
42
82
  def backtrace
43
83
  @backtrace
44
84
  end
data/lib/less/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Less
2
- VERSION = '2.0.3'
2
+ VERSION = '2.0.4'
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: less
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.0.3
5
+ version: 2.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Charles Lowell
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-14 00:00:00 -05:00
13
+ date: 2011-06-17 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.0
23
+ version: 0.9.1
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
@@ -181,7 +181,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - ">="
183
183
  - !ruby/object:Gem::Version
184
- hash: 1131849543812792581
184
+ hash: -2388107400795165815
185
185
  segments:
186
186
  - 0
187
187
  version: "0"
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - ">="
192
192
  - !ruby/object:Gem::Version
193
- hash: 1131849543812792581
193
+ hash: -2388107400795165815
194
194
  segments:
195
195
  - 0
196
196
  version: "0"