less 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +5 -3
- data/README.md +17 -13
- data/lib/less/java_script/rhino_context.rb +3 -13
- data/lib/less/java_script/v8_context.rb +1 -1
- data/lib/less/loader.rb +81 -62
- data/lib/less/parser.rb +47 -8
- data/lib/less/version.rb +1 -1
- data/spec/less/loader_spec.rb +46 -0
- data/spec/less/parser_spec.rb +25 -0
- data/spec/less/some/some.css +0 -0
- data/spec/less/some/some.less +4 -0
- metadata +24 -29
- checksums.yaml +0 -7
data/Gemfile
CHANGED
@@ -3,7 +3,9 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
gem "therubyracer", "~> 0.11.0", :require => nil, :platforms => :ruby
|
6
|
-
gem "therubyrhino", "
|
6
|
+
gem "therubyrhino", ">= 2.0.2", :require => nil, :platforms => :jruby
|
7
7
|
|
8
|
-
|
9
|
-
gem "
|
8
|
+
group :development do
|
9
|
+
gem "rake", :require => nil
|
10
|
+
gem "rspec", "~> 2.0"
|
11
|
+
end
|
data/README.md
CHANGED
@@ -1,37 +1,41 @@
|
|
1
|
-
less.rb
|
2
|
-
=======
|
1
|
+
# less.rb
|
3
2
|
|
4
3
|
The **dynamic** stylesheet language.
|
5
4
|
|
6
5
|
<http://lesscss.org>
|
7
6
|
|
8
|
-
|
9
|
-
|
7
|
+
[](http://travis-ci.org/cowboyd/less.rb)
|
8
|
+
|
9
|
+
## About
|
10
10
|
|
11
11
|
These are Ruby bindings for the next generation LESS, which is implemented in JavaScript
|
12
12
|
|
13
13
|
For more information, visit <http://lesscss.org>.
|
14
14
|
|
15
|
-
|
16
|
-
------
|
15
|
+
## Usage
|
17
16
|
|
18
17
|
less.rb exposes the `less.Parser` constructor to ruby code via `Less::Parser`. You can instate it
|
19
18
|
context free:
|
20
19
|
|
21
|
-
|
20
|
+
```ruby
|
21
|
+
parser = Less::Parser.new
|
22
|
+
```
|
22
23
|
|
23
24
|
or with configuration options:
|
24
25
|
|
25
|
-
|
26
|
+
```ruby
|
27
|
+
parser = Less::Parser.new :paths => ['./lib', 'other/lib'], :filename => 'mystyles.less'
|
28
|
+
```
|
26
29
|
|
27
30
|
Once you have a parser instantiated, you can parse code to get your AST !
|
28
31
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
+
```ruby
|
33
|
+
tree = parser.parse(".class {width: 1+1}") # => Less::Tree
|
34
|
+
tree.to_css #=> .class {\n width: 2;\n}\n
|
35
|
+
tree.to_css(:compress => true) #=> .class{width:2;}
|
36
|
+
```
|
32
37
|
|
33
|
-
|
34
|
-
-------
|
38
|
+
## License
|
35
39
|
|
36
40
|
less.rb is licensed under the same terms as less.js
|
37
41
|
|
@@ -6,8 +6,8 @@ rescue LoadError => e
|
|
6
6
|
end
|
7
7
|
|
8
8
|
require 'rhino/version'
|
9
|
-
if Rhino::VERSION < '
|
10
|
-
raise LoadError, "expected gem 'therubyrhino' '>=
|
9
|
+
if Rhino::VERSION < '2.0.2'
|
10
|
+
raise LoadError, "expected gem 'therubyrhino' '>= 2.0.2' but got '#{Rhino::VERSION}'"
|
11
11
|
end
|
12
12
|
|
13
13
|
module Less
|
@@ -26,7 +26,6 @@ module Less
|
|
26
26
|
else
|
27
27
|
apply_1_8_compatibility!
|
28
28
|
end
|
29
|
-
fix_memory_limit! @rhino_context
|
30
29
|
globals.each { |key, val| @rhino_context[key] = val } if globals
|
31
30
|
end
|
32
31
|
|
@@ -74,7 +73,7 @@ module Less
|
|
74
73
|
if e.value && ( e.value['message'] || e.value['type'].is_a?(String) )
|
75
74
|
raise Less::ParseError.new(e, e.value) # LessError
|
76
75
|
end
|
77
|
-
if e.unwrap.to_s =~ /missing closing
|
76
|
+
if e.unwrap.to_s =~ /missing closing `\}`/
|
78
77
|
raise Less::ParseError.new(e.unwrap.to_s)
|
79
78
|
end
|
80
79
|
if e.message && e.message[0, 12] == "Syntax Error"
|
@@ -83,15 +82,6 @@ module Less
|
|
83
82
|
raise Less::Error.new(e)
|
84
83
|
end
|
85
84
|
end
|
86
|
-
|
87
|
-
# Disables bytecode compiling which limits you to 64K scripts
|
88
|
-
def fix_memory_limit!(context)
|
89
|
-
if context.respond_to?(:optimization_level=)
|
90
|
-
context.optimization_level = -1
|
91
|
-
else
|
92
|
-
context.instance_eval { @native.setOptimizationLevel(-1) }
|
93
|
-
end
|
94
|
-
end
|
95
85
|
|
96
86
|
def apply_1_8_compatibility!
|
97
87
|
# TODO rather load ecma-5.js ...
|
data/lib/less/loader.rb
CHANGED
@@ -15,68 +15,84 @@ module Less
|
|
15
15
|
@context['console'] = Console.new
|
16
16
|
path = Pathname(__FILE__).dirname.join('js', 'lib')
|
17
17
|
@environment = CommonJS::Environment.new(@context, :path => path.to_s)
|
18
|
-
@environment.native('path', Path
|
19
|
-
@environment.native('util',
|
20
|
-
@environment.native('
|
21
|
-
@environment.native('
|
22
|
-
@environment.native('
|
23
|
-
|
18
|
+
@environment.native('path', Path)
|
19
|
+
@environment.native('util', Util)
|
20
|
+
@environment.native('fs', FS)
|
21
|
+
@environment.native('url', Url)
|
22
|
+
@environment.native('http', Http)
|
24
23
|
end
|
25
24
|
|
26
25
|
def require(module_id)
|
27
26
|
@environment.require(module_id)
|
28
27
|
end
|
29
28
|
|
30
|
-
#
|
29
|
+
# JS exports (required by less.js) :
|
30
|
+
|
31
|
+
class Process # :nodoc:
|
32
|
+
def exit(*args)
|
33
|
+
warn("JS process.exit(#{args.first}) called from: \n#{caller.join("\n")}")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Console # :nodoc:
|
38
|
+
def log(*msgs)
|
39
|
+
puts msgs.join(', ')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# stubbed JS modules (required by less.js) :
|
31
44
|
|
32
|
-
|
33
|
-
def join(*components)
|
45
|
+
module Path # :nodoc:
|
46
|
+
def self.join(*components)
|
34
47
|
# node.js expands path on join
|
35
48
|
File.expand_path(File.join(*components))
|
36
49
|
end
|
37
50
|
|
38
|
-
def dirname(path)
|
51
|
+
def self.dirname(path)
|
39
52
|
File.dirname(path)
|
40
53
|
end
|
41
54
|
|
42
|
-
def basename(path)
|
55
|
+
def self.basename(path)
|
43
56
|
File.basename(path)
|
44
57
|
end
|
58
|
+
|
59
|
+
def self.resolve(path)
|
60
|
+
File.basename(path)
|
61
|
+
end
|
62
|
+
|
45
63
|
end
|
46
64
|
|
47
|
-
|
48
|
-
|
65
|
+
module Util # :nodoc:
|
66
|
+
|
67
|
+
def self.error(*errors)
|
49
68
|
raise errors.join(' ')
|
50
69
|
end
|
70
|
+
|
71
|
+
def self.puts(*args)
|
72
|
+
args.each { |arg| STDOUT.puts(arg) }
|
73
|
+
end
|
74
|
+
|
51
75
|
end
|
52
76
|
|
53
|
-
|
54
|
-
|
77
|
+
module FS # :nodoc:
|
78
|
+
|
79
|
+
def self.statSync(path)
|
55
80
|
File.stat(path)
|
56
81
|
end
|
57
82
|
|
58
|
-
def readFile(path, encoding, callback)
|
83
|
+
def self.readFile(path, encoding, callback)
|
59
84
|
callback.call(nil, File.read(path))
|
60
85
|
end
|
86
|
+
|
61
87
|
end
|
62
88
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
class Console
|
69
|
-
def log(*msgs)
|
70
|
-
puts msgs.join(', ')
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
class Url
|
75
|
-
def resolve(*args)
|
89
|
+
module Url # :nodoc:
|
90
|
+
|
91
|
+
def self.resolve(*args)
|
76
92
|
URI.join(*args)
|
77
93
|
end
|
78
94
|
|
79
|
-
def parse(url_string)
|
95
|
+
def self.parse(url_string)
|
80
96
|
u = URI.parse(url_string)
|
81
97
|
result = {}
|
82
98
|
result['protocol'] = u.scheme + ':' if u.scheme
|
@@ -88,10 +104,12 @@ module Less
|
|
88
104
|
result['hash'] = '#' + u.fragment if u.fragment
|
89
105
|
result
|
90
106
|
end
|
107
|
+
|
91
108
|
end
|
92
109
|
|
93
|
-
|
94
|
-
|
110
|
+
module Http # :nodoc:
|
111
|
+
|
112
|
+
def self.get(options, callback)
|
95
113
|
err = nil
|
96
114
|
begin
|
97
115
|
#less always sends options as an object, so no need to check for string
|
@@ -123,51 +141,52 @@ module Less
|
|
123
141
|
http.start do |req|
|
124
142
|
response = req.get(uri.to_s)
|
125
143
|
end
|
126
|
-
|
127
|
-
callback.call(sr)
|
144
|
+
callback.call ServerResponse.new(response.read_body, response.code.to_i)
|
128
145
|
rescue => e
|
129
146
|
err = e.message
|
130
147
|
ensure
|
131
|
-
ret =
|
148
|
+
ret = HttpGetResult.new(err)
|
132
149
|
end
|
133
150
|
ret
|
134
151
|
end
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
attr_accessor :err
|
152
|
+
|
153
|
+
class HttpGetResult
|
154
|
+
attr_accessor :err
|
139
155
|
|
140
|
-
|
141
|
-
|
142
|
-
|
156
|
+
def initialize(err)
|
157
|
+
@err = err
|
158
|
+
end
|
143
159
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
160
|
+
def on(event, callback)
|
161
|
+
case event
|
162
|
+
when 'error'
|
163
|
+
callback.call(@err) if @err #only call when error exists
|
164
|
+
else
|
165
|
+
callback.call()
|
166
|
+
end
|
150
167
|
end
|
151
168
|
end
|
152
|
-
end
|
153
169
|
|
154
|
-
|
155
|
-
|
156
|
-
|
170
|
+
class ServerResponse
|
171
|
+
attr_accessor :statusCode
|
172
|
+
attr_accessor :data #faked because ServerResponse acutally implements WriteableStream
|
157
173
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
174
|
+
def initialize(data, status_code)
|
175
|
+
@data = data
|
176
|
+
@statusCode = status_code
|
177
|
+
end
|
162
178
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
179
|
+
def on(event, callback)
|
180
|
+
case event
|
181
|
+
when 'data'
|
182
|
+
callback.call(@data)
|
183
|
+
else
|
184
|
+
callback.call()
|
185
|
+
end
|
169
186
|
end
|
170
187
|
end
|
188
|
+
|
171
189
|
end
|
190
|
+
|
172
191
|
end
|
173
192
|
end
|
data/lib/less/parser.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
|
1
3
|
module Less
|
2
4
|
|
3
5
|
# Convert lesscss source into an abstract syntax Tree
|
@@ -5,15 +7,52 @@ module Less
|
|
5
7
|
|
6
8
|
# Construct and configure new Less::Parser
|
7
9
|
#
|
8
|
-
# @param [Hash]
|
9
|
-
# @option
|
10
|
-
# @option
|
10
|
+
# @param [Hash] options configuration options
|
11
|
+
# @option options [Array] :paths a list of directories to search when handling \@import statements
|
12
|
+
# @option options [String] :filename to associate with resulting parse trees (useful for generating errors)
|
13
|
+
# @option options [TrueClass, FalseClass] :compress
|
14
|
+
# @option options [TrueClass, FalseClass] :strictImports
|
15
|
+
# @option options [TrueClass, FalseClass] :relativeUrls
|
16
|
+
# @option options [String] :dumpLineNumbers one of 'mediaquery', 'comments', or 'all'
|
11
17
|
def initialize(options = {})
|
12
|
-
|
13
|
-
|
14
|
-
|
18
|
+
# LeSS supported _env_ options :
|
19
|
+
#
|
20
|
+
# - paths (unmodified) - paths to search for imports on
|
21
|
+
# - optimization - optimization level (for the chunker)
|
22
|
+
# - mime (browser only) mime type for sheet import
|
23
|
+
# - contents (browser only)
|
24
|
+
# - strictImports
|
25
|
+
# - dumpLineNumbers - whether to dump line numbers
|
26
|
+
# - compress - whether to compress
|
27
|
+
# - processImports - whether to process imports. if false then imports will not be imported
|
28
|
+
# - relativeUrls (true/false) whether to adjust URL's to be relative
|
29
|
+
# - errback (error callback function)
|
30
|
+
# - rootpath string
|
31
|
+
# - entryPath string
|
32
|
+
# - files (internal) - list of files that have been imported, used for import-once
|
33
|
+
# - currentFileInfo (internal) - information about the current file -
|
34
|
+
# for error reporting and importing and making urls relative etc :
|
35
|
+
# this.currentFileInfo = {
|
36
|
+
# filename: filename,
|
37
|
+
# relativeUrls: this.relativeUrls,
|
38
|
+
# rootpath: options.rootpath || "",
|
39
|
+
# currentDirectory: entryPath,
|
40
|
+
# entryPath: entryPath,
|
41
|
+
# rootFilename: filename
|
42
|
+
# };
|
43
|
+
#
|
44
|
+
env = {}
|
45
|
+
Less.defaults.merge(options).each do |key, val|
|
46
|
+
env[key.to_s] =
|
47
|
+
case val
|
48
|
+
when Symbol, Pathname then val.to_s
|
49
|
+
when Array
|
50
|
+
val.map!(&:to_s) if key.to_sym == :paths # might contain Pathname-s
|
51
|
+
val # keep the original passed Array
|
52
|
+
else val # true/false/String/Method
|
53
|
+
end
|
15
54
|
end
|
16
|
-
@parser = Less::JavaScript.exec { Less['Parser'].new(
|
55
|
+
@parser = Less::JavaScript.exec { Less['Parser'].new(env) }
|
17
56
|
end
|
18
57
|
|
19
58
|
# Convert `less` source into a abstract syntaxt tree
|
@@ -39,7 +78,7 @@ module Less
|
|
39
78
|
end
|
40
79
|
|
41
80
|
def imports
|
42
|
-
Less::JavaScript.exec { @parser.imports.files.map{|file, _| file} }
|
81
|
+
Less::JavaScript.exec { @parser.imports.files.map { |file, _| file } }
|
43
82
|
end
|
44
83
|
|
45
84
|
private
|
data/lib/less/version.rb
CHANGED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
describe Less::Loader do
|
5
|
+
|
6
|
+
describe 'eval console.log()' do
|
7
|
+
|
8
|
+
it 'should write message to $stdout' do
|
9
|
+
stdout = $stdout; io_stub = StringIO.new
|
10
|
+
begin
|
11
|
+
$stdout = io_stub
|
12
|
+
subject.environment.runtime.eval("console.log('log much?');")
|
13
|
+
ensure
|
14
|
+
$stdout = stdout
|
15
|
+
end
|
16
|
+
io_stub.string.should == "log much?\n"
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should write messages to $stdout' do
|
20
|
+
stdout = $stdout; io_stub = StringIO.new
|
21
|
+
begin
|
22
|
+
$stdout = io_stub
|
23
|
+
subject.environment.runtime.eval("console.log('1','2','3');")
|
24
|
+
ensure
|
25
|
+
$stdout = stdout
|
26
|
+
end
|
27
|
+
io_stub.string.should == "1, 2, 3\n"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'eval process.exit()' do
|
33
|
+
|
34
|
+
process = Less::Loader::Process
|
35
|
+
|
36
|
+
it 'should not raise an error' do
|
37
|
+
# process = double("process")
|
38
|
+
process.any_instance.should_receive(:warn) do |msg|
|
39
|
+
msg.should match(/JS process\.exit\(-2\)/)
|
40
|
+
end
|
41
|
+
subject.environment.runtime.eval("process.exit(-2);")
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
data/spec/less/parser_spec.rb
CHANGED
@@ -27,6 +27,15 @@ describe Less::Parser do
|
|
27
27
|
lambda { subject.parse('body { color: @a; }').to_css }.should raise_error(Less::ParseError, /variable @a is undefined/)
|
28
28
|
end
|
29
29
|
|
30
|
+
describe "when configured with source mapping" do
|
31
|
+
subject { Less::Parser.new(:filename => 'one.less', :paths => [ cwd.join('one'), cwd.join('two') ], :dumpLineNumbers => 'mediaquery') }
|
32
|
+
|
33
|
+
it "prints source maps" do
|
34
|
+
subject.parse('@import "one.less"; @import "two.less";').to_css(:compress => false).gsub(/\n/,'').strip.should eql "@media -sass-debug-info{filename{font-family:file\\:\\/\\/one\\.less}line{font-family:\\000031}}.one { width: 1;}@media -sass-debug-info{filename{font-family:file\\:\\/\\/two\\.less}line{font-family:\\000031}}.two { width: 1;}"
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
30
39
|
describe "when configured with multiple load paths" do
|
31
40
|
subject { Less::Parser.new :paths => [ cwd.join('one'), cwd.join('two'), cwd.join('faulty') ] }
|
32
41
|
|
@@ -78,6 +87,22 @@ describe Less::Parser do
|
|
78
87
|
end
|
79
88
|
end
|
80
89
|
|
90
|
+
describe "relative urls" do
|
91
|
+
|
92
|
+
it "keeps relative imports when true" do
|
93
|
+
parser = Less::Parser.new :paths => [ cwd ], :relativeUrls => true
|
94
|
+
expected = "@import \"some/some.css\";\nbody {\n background: url('some/assets/logo.png');\n}\n"
|
95
|
+
expect( parser.parse('@import "some/some.less";').to_css ).to eql expected
|
96
|
+
end
|
97
|
+
|
98
|
+
it "does not keep relative imports when false" do
|
99
|
+
parser = Less::Parser.new :paths => [ cwd ], :relativeUrls => false
|
100
|
+
expected = "@import \"some.css\";\nbody {\n background: url('assets/logo.png');\n}\n"
|
101
|
+
expect( parser.parse('@import "some/some.less";').to_css ).to eql expected
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
81
106
|
# NOTE: runs JS tests from less.js it's a replacement for less-test.js
|
82
107
|
describe "less-test", :integration => true do
|
83
108
|
|
File without changes
|
metadata
CHANGED
@@ -1,39 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: less
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Charles Lowell
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRAwDgYDVQQDDAdjb3di
|
14
|
-
b3lkMRwwGgYKCZImiZPyLGQBGRYMdGhlZnJvbnRzaWRlMRMwEQYKCZImiZPyLGQB
|
15
|
-
GRYDbmV0MB4XDTEzMDEzMDIxMDYwNFoXDTE0MDEzMDIxMDYwNFowRTEQMA4GA1UE
|
16
|
-
AwwHY293Ym95ZDEcMBoGCgmSJomT8ixkARkWDHRoZWZyb250c2lkZTETMBEGCgmS
|
17
|
-
JomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO45
|
18
|
-
CUxpETDGYXjCCy2dMg/aIrdrTqBqQW5ZrzhHxF9EkcdmWFr0z/qMz0JSpZ3pF11Z
|
19
|
-
KYaj5PaQQpjZfLPwbuiGGkuSWi+UAac//V18xo6S4lzRBjO+gpzG9f2AOzt9b+SR
|
20
|
-
Uc8UhO7QBZ5edUDxMxw9QstD+U0YBAlzsPJbHuUOqdtxXmNQCds3ZnqTgZaIpdUy
|
21
|
-
CSejtrukSmlthxFzwgMezYQhcYxmkl+Q475JUodnI6Pjc6nja/Or8Y6cEWiLgeUa
|
22
|
-
a+efcPGLDEbwJC7TGRrvk8yassMByBEJ3XueTMzeqWFd+665ptciojYo6BvIAR0N
|
23
|
-
iLwks0x567FZyS8SqTcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUxVgR
|
24
|
-
5TUqf7Hd24ICb3g4FNbM7oYwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IB
|
25
|
-
AQDdJj+NzZhiYXA56z0wzRUA/Fcf6CYqKB+RFRlPssDEcHTor5SnwdWgQof/gNLi
|
26
|
-
Qel1Om4zO0Shcp89jxaUqtvEdYVhmyfc0vycHmemKttNBT734yMrEJtF8Hhy+Dnz
|
27
|
-
9CzixXLvgGaRH+mf3M0+l+zIDJJr2L+39L8cyTSSRnp/srfI8aSmJKhGshudBKoC
|
28
|
-
Ty6Gi071pwoJXvdMaE/6iPy7bUzlndYdHyYuWSKaO9N47HqQ62oEnBraglw6ghoi
|
29
|
-
UgImJlChAzCoDP9zi9tdm6jAr7ttF25R9PPYr11ILb7dYe3qUzlNlM6zJx/nb31b
|
30
|
-
IhdyRVup4qLcqYSTPsm6u7VA
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
date: 2013-03-06 00:00:00.000000000 Z
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-16 00:00:00.000000000 Z
|
33
13
|
dependencies:
|
34
14
|
- !ruby/object:Gem::Dependency
|
35
15
|
name: commonjs
|
36
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
37
18
|
requirements:
|
38
19
|
- - ~>
|
39
20
|
- !ruby/object:Gem::Version
|
@@ -41,6 +22,7 @@ dependencies:
|
|
41
22
|
type: :runtime
|
42
23
|
prerelease: false
|
43
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
44
26
|
requirements:
|
45
27
|
- - ~>
|
46
28
|
- !ruby/object:Gem::Version
|
@@ -71,8 +53,11 @@ files:
|
|
71
53
|
- lib/less/parser.rb
|
72
54
|
- lib/less/version.rb
|
73
55
|
- spec/less/faulty/faulty.less
|
56
|
+
- spec/less/loader_spec.rb
|
74
57
|
- spec/less/one/one.less
|
75
58
|
- spec/less/parser_spec.rb
|
59
|
+
- spec/less/some/some.css
|
60
|
+
- spec/less/some/some.less
|
76
61
|
- spec/less/two/two.less
|
77
62
|
- spec/spec_helper.rb
|
78
63
|
- lib/less/js/.gitignore
|
@@ -302,30 +287,40 @@ files:
|
|
302
287
|
- lib/less/js/test/less/whitespace.less
|
303
288
|
homepage: http://lesscss.org
|
304
289
|
licenses: []
|
305
|
-
metadata: {}
|
306
290
|
post_install_message:
|
307
291
|
rdoc_options: []
|
308
292
|
require_paths:
|
309
293
|
- lib
|
310
294
|
required_ruby_version: !ruby/object:Gem::Requirement
|
295
|
+
none: false
|
311
296
|
requirements:
|
312
|
-
- - '>='
|
297
|
+
- - ! '>='
|
313
298
|
- !ruby/object:Gem::Version
|
314
299
|
version: '0'
|
300
|
+
segments:
|
301
|
+
- 0
|
302
|
+
hash: -993011360193130515
|
315
303
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
304
|
+
none: false
|
316
305
|
requirements:
|
317
|
-
- - '>='
|
306
|
+
- - ! '>='
|
318
307
|
- !ruby/object:Gem::Version
|
319
308
|
version: '0'
|
309
|
+
segments:
|
310
|
+
- 0
|
311
|
+
hash: -993011360193130515
|
320
312
|
requirements: []
|
321
313
|
rubyforge_project: less
|
322
|
-
rubygems_version:
|
314
|
+
rubygems_version: 1.8.25
|
323
315
|
signing_key:
|
324
|
-
specification_version:
|
316
|
+
specification_version: 3
|
325
317
|
summary: Leaner CSS, in your browser or Ruby (via less.js)
|
326
318
|
test_files:
|
327
319
|
- spec/less/faulty/faulty.less
|
320
|
+
- spec/less/loader_spec.rb
|
328
321
|
- spec/less/one/one.less
|
329
322
|
- spec/less/parser_spec.rb
|
323
|
+
- spec/less/some/some.css
|
324
|
+
- spec/less/some/some.less
|
330
325
|
- spec/less/two/two.less
|
331
326
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: adb48547dd24e2ed229ba0f5213d69d47bc62b0f
|
4
|
-
data.tar.gz: 3ddf770c160c85f2674b385613036210a7755362
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 09be273542eed8947fd1fdd5ad408fb6507649ac1e52ec80de0fdd3629165a56fee71acd08688d6a74d28ad81354ecce65c92e36e3fa102326ff1eb4219141f4
|
7
|
-
data.tar.gz: 2bde14ee364b7dcf7585a8be0f10d739df566fb18b6c0bb46dd2042933ffb9e82764904601bfc1445cb352c185a9e545f4e14df548f67c5049e83e55f2a02ae7
|