assette 0.0.13 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -13,6 +13,7 @@ gem "rack", '~> 1'
13
13
  gem "thor", '~> 0'
14
14
  gem "json", '>= 1.4'
15
15
  gem "sass", '>= 3.1'
16
+ gem 'less'
16
17
  gem "mime-types", ">= 1.16", :require => 'mime/types'
17
18
  gem "git"
18
19
  gem "coffee-script", "~> 2"
data/Gemfile.lock CHANGED
@@ -5,6 +5,8 @@ GEM
5
5
  coffee-script-source
6
6
  execjs
7
7
  coffee-script-source (1.1.1)
8
+ commonjs (0.2.0)
9
+ therubyracer (~> 0.9.9)
8
10
  diff-lcs (1.1.2)
9
11
  execjs (1.1.3)
10
12
  multi_json (~> 1.0)
@@ -14,6 +16,10 @@ GEM
14
16
  git (>= 1.2.5)
15
17
  rake
16
18
  json (1.5.2)
19
+ less (2.0.8)
20
+ commonjs (~> 0.2.0)
21
+ therubyracer (~> 0.9.9)
22
+ libv8 (3.3.10.4)
17
23
  mime-types (1.16)
18
24
  multi_json (1.0.3)
19
25
  rack (1.3.0)
@@ -30,6 +36,8 @@ GEM
30
36
  diff-lcs (~> 1.1.2)
31
37
  rspec-mocks (2.4.0)
32
38
  sass (3.1.2)
39
+ therubyracer (0.9.9)
40
+ libv8 (~> 3.3.10)
33
41
  thor (0.14.6)
34
42
  uglifier (1.1.0)
35
43
  execjs (>= 0.3.0)
@@ -45,6 +53,7 @@ DEPENDENCIES
45
53
  git
46
54
  jeweler (~> 1.5.2)
47
55
  json (>= 1.4)
56
+ less
48
57
  mime-types (>= 1.16)
49
58
  rack (~> 1)
50
59
  rack-test
data/Rakefile CHANGED
@@ -27,6 +27,7 @@ Jeweler::Tasks.new do |gem|
27
27
  gem.add_runtime_dependency "thor", '~> 0'
28
28
  gem.add_runtime_dependency "json", '>= 1.4'
29
29
  gem.add_runtime_dependency "sass", '>= 3.1'
30
+ gem.add_runtime_dependency "less", '>= 2.0'
30
31
  gem.add_runtime_dependency "coffee-script", '~> 2'
31
32
  gem.add_runtime_dependency "uglifier"
32
33
  gem.add_runtime_dependency "mime-types", ">= 1.16"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.13
1
+ 0.1.0
data/assette.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{assette}
8
- s.version = "0.0.13"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Tal Atlas}]
12
- s.date = %q{2011-12-09}
12
+ s.date = %q{2011-12-28}
13
13
  s.description = %q{Renders all asset types (coffeescript/sass/scss) as equals}
14
14
  s.email = %q{me@tal.by}
15
15
  s.executables = [%q{assette}]
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
42
42
  "examples/public/javascripts/test.coffee",
43
43
  "examples/public/javascripts/three.js",
44
44
  "examples/public/javascripts/two.js",
45
+ "examples/public/stylesheets/less.less",
45
46
  "examples/public/stylesheets/one.css",
46
47
  "examples/public/stylesheets/one1.sass",
47
48
  "examples/public/stylesheets/two.css",
@@ -55,12 +56,14 @@ Gem::Specification.new do |s|
55
56
  "lib/assette/post_processor.rb",
56
57
  "lib/assette/post_processors.rb",
57
58
  "lib/assette/post_processors/cache_buster.rb",
59
+ "lib/assette/post_processors/css_min.rb",
58
60
  "lib/assette/post_processors/js_min.rb",
59
61
  "lib/assette/reader.rb",
60
62
  "lib/assette/readers.rb",
61
63
  "lib/assette/readers/coffee.rb",
62
64
  "lib/assette/readers/css.rb",
63
65
  "lib/assette/readers/js.rb",
66
+ "lib/assette/readers/less.rb",
64
67
  "lib/assette/readers/sass.rb",
65
68
  "lib/assette/readers/scss.rb",
66
69
  "lib/assette/run.ru",
@@ -108,6 +111,7 @@ Gem::Specification.new do |s|
108
111
  s.add_runtime_dependency(%q<thor>, ["~> 0"])
109
112
  s.add_runtime_dependency(%q<json>, [">= 1.4"])
110
113
  s.add_runtime_dependency(%q<sass>, [">= 3.1"])
114
+ s.add_runtime_dependency(%q<less>, [">= 0"])
111
115
  s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
112
116
  s.add_runtime_dependency(%q<git>, [">= 0"])
113
117
  s.add_runtime_dependency(%q<coffee-script>, ["~> 2"])
@@ -122,6 +126,7 @@ Gem::Specification.new do |s|
122
126
  s.add_runtime_dependency(%q<thor>, ["~> 0"])
123
127
  s.add_runtime_dependency(%q<json>, [">= 1.4"])
124
128
  s.add_runtime_dependency(%q<sass>, [">= 3.1"])
129
+ s.add_runtime_dependency(%q<less>, [">= 2.0"])
125
130
  s.add_runtime_dependency(%q<coffee-script>, ["~> 2"])
126
131
  s.add_runtime_dependency(%q<uglifier>, [">= 0"])
127
132
  s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
@@ -130,6 +135,7 @@ Gem::Specification.new do |s|
130
135
  s.add_dependency(%q<thor>, ["~> 0"])
131
136
  s.add_dependency(%q<json>, [">= 1.4"])
132
137
  s.add_dependency(%q<sass>, [">= 3.1"])
138
+ s.add_dependency(%q<less>, [">= 0"])
133
139
  s.add_dependency(%q<mime-types>, [">= 1.16"])
134
140
  s.add_dependency(%q<git>, [">= 0"])
135
141
  s.add_dependency(%q<coffee-script>, ["~> 2"])
@@ -144,6 +150,7 @@ Gem::Specification.new do |s|
144
150
  s.add_dependency(%q<thor>, ["~> 0"])
145
151
  s.add_dependency(%q<json>, [">= 1.4"])
146
152
  s.add_dependency(%q<sass>, [">= 3.1"])
153
+ s.add_dependency(%q<less>, [">= 2.0"])
147
154
  s.add_dependency(%q<coffee-script>, ["~> 2"])
148
155
  s.add_dependency(%q<uglifier>, [">= 0"])
149
156
  s.add_dependency(%q<mime-types>, [">= 1.16"])
@@ -153,6 +160,7 @@ Gem::Specification.new do |s|
153
160
  s.add_dependency(%q<thor>, ["~> 0"])
154
161
  s.add_dependency(%q<json>, [">= 1.4"])
155
162
  s.add_dependency(%q<sass>, [">= 3.1"])
163
+ s.add_dependency(%q<less>, [">= 0"])
156
164
  s.add_dependency(%q<mime-types>, [">= 1.16"])
157
165
  s.add_dependency(%q<git>, [">= 0"])
158
166
  s.add_dependency(%q<coffee-script>, ["~> 2"])
@@ -167,6 +175,7 @@ Gem::Specification.new do |s|
167
175
  s.add_dependency(%q<thor>, ["~> 0"])
168
176
  s.add_dependency(%q<json>, [">= 1.4"])
169
177
  s.add_dependency(%q<sass>, [">= 3.1"])
178
+ s.add_dependency(%q<less>, [">= 2.0"])
170
179
  s.add_dependency(%q<coffee-script>, ["~> 2"])
171
180
  s.add_dependency(%q<uglifier>, [">= 0"])
172
181
  s.add_dependency(%q<mime-types>, [">= 1.16"])
@@ -15,6 +15,8 @@ template_format 'GC.foo.t[{*path*}] = Handlebars.compile({*template*});'
15
15
 
16
16
  cache_method 'path'
17
17
 
18
+ minify true
19
+
18
20
  after_compile do |sha|
19
21
 
20
22
  end
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ASSETTE CONFIG
3
+ * @minify
4
+ * /ASSETTE CONFIG
5
+ **/
6
+
7
+ .box-shadow (@x: 0, @y: 0, @blur: 1px, @alpha) {
8
+ @val: @x @y @blur rgba(0, 0, 0, @alpha);
9
+
10
+ box-shadow: @val;
11
+ -webkit-box-shadow: @val;
12
+ -moz-box-shadow: @val;
13
+ }
14
+ .box { @base: #f938ab;
15
+ color: saturate(@base, 5%);
16
+ border-color: lighten(@base, 30%);
17
+ div { .box-shadow(0, 0, 5px, 0.4) }
18
+ }
data/lib/assette/cli.rb CHANGED
@@ -88,6 +88,8 @@ module Assette
88
88
  end
89
89
 
90
90
  desc "compile", "Compile all the assettes in a folder for static serving"
91
+ method_option :minified, :type => :boolean, :default => false, :description => "only compile minified files"
92
+ method_option :static_min, :type => :boolean, :default => false, :description => "only copy static files and minified files"
91
93
  def compile
92
94
  files = []
93
95
  all_files = []
@@ -122,8 +124,12 @@ module Assette
122
124
  made_dirs = []
123
125
 
124
126
  say "Compiling all asset files to #{container}"
127
+
128
+ files_to_minify = []
125
129
 
126
130
  files.each do |file|
131
+ files_to_minify.push(file) if file.minify?
132
+ next if options.minified? || options.static_min?
127
133
  target_path = file.relative_target_path
128
134
 
129
135
  Assette.config.file_paths.each do |p|
@@ -135,10 +141,24 @@ module Assette
135
141
  Assette.logger.debug("Compiling file") {"#{file.path} -> #{new_path}"}
136
142
  create_file(new_path, file.all_code)
137
143
  end
144
+
145
+ Assette.config.minifying do
146
+ say "\nCreating minified versions of files" unless files_to_minify.empty?
147
+
148
+ files_to_minify.each do |file|
149
+ target_path = file.relative_target_path
150
+
151
+ new_path = File.join(container,target_path).sub(/(\.[A-Za-z0-9]{2,10})$/,'.min\1')
152
+
153
+ Assette.logger.debug("Compiling minified file") {"#{file.path} -> #{new_path}"}
154
+ create_file(new_path, file.all_code)
155
+ end
156
+ end
138
157
 
139
158
  say "\nCopying all non-compiled assets to #{container}"
140
159
  not_compiled.each do |file|
141
160
  next if File.directory?(file)
161
+ next if options.minified?
142
162
  target_path = file.dup
143
163
 
144
164
  Assette.config.file_paths.each do |p|
@@ -17,9 +17,10 @@ module Assette
17
17
  self << c.join("\n")
18
18
  end
19
19
 
20
- def post_process str
20
+ def post_process file
21
+ str = file.code
21
22
  PostProcessor::POST_PROCESSORS[target_class.outputs].each do |processor|
22
- p = processor.new(str)
23
+ p = processor.new(file, :parent => @file)
23
24
  str.replace(p.process)
24
25
  end
25
26
 
@@ -27,7 +28,7 @@ module Assette
27
28
  end
28
29
 
29
30
  def code_for_dependency d
30
- post_process(d.code)
31
+ post_process(d)
31
32
  end
32
33
 
33
34
  def content_type
@@ -18,7 +18,7 @@ module Assette
18
18
  MULTIPLES = %w{file_path asset_host}.freeze
19
19
  SINGLES = %w{asset_dir templates_path template_format cache_method
20
20
  template_preloader template_partial asset_version_file uglifier
21
- minify}.freeze
21
+ minify less sass}.freeze
22
22
  BLOCKS = %w{after_compile}.freeze
23
23
 
24
24
  OPTIONS = begin
@@ -30,7 +30,7 @@ module Assette
30
30
  end.freeze
31
31
 
32
32
  attr_reader *OPTIONS
33
- attr_accessor :compiling, :sha
33
+ attr_accessor :compiling, :sha, :minifying
34
34
  attr_writer :env
35
35
 
36
36
  DEFAULTS = {
@@ -42,14 +42,20 @@ module Assette
42
42
  :template_format => 'AT.t[{*path*}] = {*template*};',
43
43
  :after_compile => Proc.new {},
44
44
  :uglifier => {:copyright => false, :mangle => false},
45
- :minify => true
45
+ :less => {},
46
+ :sass => {}
46
47
  }.freeze
47
48
 
48
49
  def initialize args = {}
49
50
  args = DEFAULTS.merge(args||{})
50
51
 
51
52
  args.each do |k,v|
52
- instance_variable_set "@#{k}", v.dup.freeze
53
+ begin
54
+ var = v.dup.freeze
55
+ rescue TypeError
56
+ var = v
57
+ end
58
+ instance_variable_set "@#{k}", var
53
59
  end
54
60
  end
55
61
 
@@ -110,6 +116,18 @@ module Assette
110
116
  def minify?
111
117
  !!minify
112
118
  end
119
+
120
+ def minifying?
121
+ !!(@minifying && minify?)
122
+ end
123
+
124
+ def minifying
125
+ return @minifying unless block_given?
126
+ return unless minify?
127
+ @minifying = true
128
+ yield
129
+ @minifying = false
130
+ end
113
131
 
114
132
  def asset_host i
115
133
  return '' unless asset_hosts?
data/lib/assette/file.rb CHANGED
@@ -49,6 +49,14 @@ class Assette::File < ::File
49
49
  def template_set
50
50
  Assette::TemplateSet.new(templates)
51
51
  end
52
+
53
+ def minify?
54
+ check_config_flag 'minify'
55
+ end
56
+
57
+ def never_minify?
58
+ check_config_flag(/never[\s_]?minify/i)
59
+ end
52
60
 
53
61
  def all_code_array
54
62
  dep = Assette::CompiledFile.new(self)
@@ -182,6 +190,16 @@ class Assette::File < ::File
182
190
  yield(l)
183
191
  end
184
192
  end
193
+
194
+ def check_config_flag f
195
+ flag = false
196
+ reg = /@#{f}/i
197
+ read_config do |line|
198
+ flag = !!(line =~ reg)
199
+ break if flag
200
+ end
201
+ flag
202
+ end
185
203
 
186
204
  def path_array
187
205
  code = []
@@ -228,6 +246,7 @@ class Assette::File < ::File
228
246
  elsif opts[:dev]
229
247
 
230
248
  code = f.path_array.collect do |path|
249
+ path = "http://#{opts[:env]['HTTP_HOST']}#{path}"
231
250
  f.target_class.include(path)
232
251
  end
233
252
 
@@ -9,8 +9,9 @@ module Assette
9
9
 
10
10
  class Base
11
11
 
12
- def initialize(str, args={})
13
- @str = str; @args = args
12
+ def initialize(file, args={})
13
+ @file = file
14
+ @str = file.code; @args = args
14
15
  end
15
16
 
16
17
  def should_process?
@@ -0,0 +1,27 @@
1
+ require 'less'
2
+
3
+ module Assette
4
+ class PostProcessor::CSSMin < Assette::PostProcessor(:css)
5
+
6
+ def should_process?
7
+ Assette.logger.debug("Testing post processor #{self.class}") {"Assette.config.compiling?: #{Assette.config.compiling?} Assette.config.minifying?: #{Assette.config.minifying?} minify?: #{minify?}"}
8
+ # puts Assette.config.minifying? && minify?
9
+ Assette.config.minifying? && minify?
10
+ end
11
+
12
+ def minify?
13
+ # minify = false
14
+ # minify ||= @args[:parent].minify? if @args[:parent]
15
+ # minify &&= !file.never_minify?
16
+ # puts @args[:parent].minify? if @args[:parent]
17
+ # puts !file.never_minify?
18
+ # minify
19
+ minify ||= @args[:parent].minify? if @args[:parent]
20
+ end
21
+
22
+ def processor
23
+ Reader::Less.new(@file).compile(:compress => true).chomp
24
+ end
25
+
26
+ end
27
+ end
@@ -28,7 +28,12 @@ module Assette
28
28
  class PostProcessor::JSMin < Assette::PostProcessor(:js)
29
29
 
30
30
  def should_process?
31
- Assette.config.compiling? && Assette.config.minify?
31
+ Assette.logger.debug("Testing post processor #{self.class}") {"Assette.config.compiling?: #{Assette.config.compiling?} Assette.config.minifying?: #{Assette.config.minifying?} minify?: #{minify?}"}
32
+ Assette.config.minifying? && minify?
33
+ end
34
+
35
+ def minify?
36
+ @args[:parent].minify? if @args[:parent]
32
37
  end
33
38
 
34
39
  def processor
@@ -29,13 +29,15 @@ class Assette::Reader::Js < Assette::Reader(:js)
29
29
  end
30
30
 
31
31
  def include path
32
+ # <<-JS
33
+ # (function() {
34
+ # var e = document.createElement('script'); e.async = false;
35
+ # e.src = '#{path}?nodep';
36
+ # document.getElementsByTagName('head')[0].appendChild(e);
37
+ # }());
38
+ # JS
32
39
  <<-JS
33
- (function() {
34
- var e = document.createElement('script'); e.async = false;
35
- e.src = '#{path}?nodep';
36
- document.getElementsByTagName('head')[0].appendChild(e);
37
- }());
38
-
40
+ document.write("<script src='#{path}?nodep'></script>")
39
41
  JS
40
42
  end
41
43
  end
@@ -0,0 +1,21 @@
1
+ require 'less'
2
+
3
+ class Assette::Reader::Less < Assette::Reader(:css)
4
+
5
+ def compile args={}
6
+ parser = Less::Parser.new({
7
+ :paths => [File.expand_path(@file.dirname)]|Assette.config.file_paths,
8
+ :filename => @file.filename
9
+ })
10
+
11
+ tree = parser.parse(text)
12
+
13
+ tree.to_css(options.merge(args))
14
+ end
15
+
16
+ private
17
+
18
+ def options
19
+ Assette.config.less
20
+ end
21
+ end
@@ -7,11 +7,11 @@ class Assette::Reader::Sass < Assette::Reader(:css)
7
7
  end
8
8
 
9
9
  private
10
-
10
+
11
11
  def options
12
- {
13
- :syndtax => :sass,
12
+ Assette.config.sass.merge({
13
+ :syntax => :sass,
14
14
  :load_paths => [File.expand_path(@file.dirname)]|Assette.config.file_paths
15
- }
15
+ })
16
16
  end
17
17
  end
@@ -4,6 +4,7 @@
4
4
  coffee
5
5
  sass
6
6
  scss
7
+ less
7
8
  }.collect do |f|
8
9
  File.join(File.dirname(__FILE__),'readers',"#{f}.rb")
9
10
  end.each do |f|
@@ -28,7 +28,7 @@ module Assette
28
28
 
29
29
  Assette::Reader.possible_targets(File.join(p,path)).each do |pp|
30
30
  Assette.logger.debug('Checking for compiled file') {pp}
31
- f = Assette::File.rack_resp_if_exists( pp, @params )
31
+ f = Assette::File.rack_resp_if_exists( pp, @params.merge(:env => @env) )
32
32
  Assette.logger.info("Found File") {"Compiled file at #{pp}"} if f
33
33
  break if f
34
34
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assette
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 13
10
- version: 0.0.13
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tal Atlas
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-09 00:00:00 Z
18
+ date: 2011-12-28 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -77,6 +77,20 @@ dependencies:
77
77
  requirement: *id004
78
78
  - !ruby/object:Gem::Dependency
79
79
  version_requirements: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ name: less
89
+ prerelease: false
90
+ type: :runtime
91
+ requirement: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ version_requirements: &id006 !ruby/object:Gem::Requirement
80
94
  none: false
81
95
  requirements:
82
96
  - - ">="
@@ -89,9 +103,9 @@ dependencies:
89
103
  name: mime-types
90
104
  prerelease: false
91
105
  type: :runtime
92
- requirement: *id005
106
+ requirement: *id006
93
107
  - !ruby/object:Gem::Dependency
94
- version_requirements: &id006 !ruby/object:Gem::Requirement
108
+ version_requirements: &id007 !ruby/object:Gem::Requirement
95
109
  none: false
96
110
  requirements:
97
111
  - - ">="
@@ -103,9 +117,9 @@ dependencies:
103
117
  name: git
104
118
  prerelease: false
105
119
  type: :runtime
106
- requirement: *id006
120
+ requirement: *id007
107
121
  - !ruby/object:Gem::Dependency
108
- version_requirements: &id007 !ruby/object:Gem::Requirement
122
+ version_requirements: &id008 !ruby/object:Gem::Requirement
109
123
  none: false
110
124
  requirements:
111
125
  - - ~>
@@ -117,9 +131,9 @@ dependencies:
117
131
  name: coffee-script
118
132
  prerelease: false
119
133
  type: :runtime
120
- requirement: *id007
134
+ requirement: *id008
121
135
  - !ruby/object:Gem::Dependency
122
- version_requirements: &id008 !ruby/object:Gem::Requirement
136
+ version_requirements: &id009 !ruby/object:Gem::Requirement
123
137
  none: false
124
138
  requirements:
125
139
  - - ">="
@@ -131,9 +145,9 @@ dependencies:
131
145
  name: uglifier
132
146
  prerelease: false
133
147
  type: :runtime
134
- requirement: *id008
148
+ requirement: *id009
135
149
  - !ruby/object:Gem::Dependency
136
- version_requirements: &id009 !ruby/object:Gem::Requirement
150
+ version_requirements: &id010 !ruby/object:Gem::Requirement
137
151
  none: false
138
152
  requirements:
139
153
  - - ~>
@@ -147,9 +161,9 @@ dependencies:
147
161
  name: rspec
148
162
  prerelease: false
149
163
  type: :development
150
- requirement: *id009
164
+ requirement: *id010
151
165
  - !ruby/object:Gem::Dependency
152
- version_requirements: &id010 !ruby/object:Gem::Requirement
166
+ version_requirements: &id011 !ruby/object:Gem::Requirement
153
167
  none: false
154
168
  requirements:
155
169
  - - ~>
@@ -163,9 +177,9 @@ dependencies:
163
177
  name: yard
164
178
  prerelease: false
165
179
  type: :development
166
- requirement: *id010
180
+ requirement: *id011
167
181
  - !ruby/object:Gem::Dependency
168
- version_requirements: &id011 !ruby/object:Gem::Requirement
182
+ version_requirements: &id012 !ruby/object:Gem::Requirement
169
183
  none: false
170
184
  requirements:
171
185
  - - ~>
@@ -179,9 +193,9 @@ dependencies:
179
193
  name: bundler
180
194
  prerelease: false
181
195
  type: :development
182
- requirement: *id011
196
+ requirement: *id012
183
197
  - !ruby/object:Gem::Dependency
184
- version_requirements: &id012 !ruby/object:Gem::Requirement
198
+ version_requirements: &id013 !ruby/object:Gem::Requirement
185
199
  none: false
186
200
  requirements:
187
201
  - - ~>
@@ -195,9 +209,9 @@ dependencies:
195
209
  name: jeweler
196
210
  prerelease: false
197
211
  type: :development
198
- requirement: *id012
212
+ requirement: *id013
199
213
  - !ruby/object:Gem::Dependency
200
- version_requirements: &id013 !ruby/object:Gem::Requirement
214
+ version_requirements: &id014 !ruby/object:Gem::Requirement
201
215
  none: false
202
216
  requirements:
203
217
  - - ">="
@@ -209,9 +223,9 @@ dependencies:
209
223
  name: rcov
210
224
  prerelease: false
211
225
  type: :development
212
- requirement: *id013
226
+ requirement: *id014
213
227
  - !ruby/object:Gem::Dependency
214
- version_requirements: &id014 !ruby/object:Gem::Requirement
228
+ version_requirements: &id015 !ruby/object:Gem::Requirement
215
229
  none: false
216
230
  requirements:
217
231
  - - ">="
@@ -223,9 +237,9 @@ dependencies:
223
237
  name: rack-test
224
238
  prerelease: false
225
239
  type: :development
226
- requirement: *id014
240
+ requirement: *id015
227
241
  - !ruby/object:Gem::Dependency
228
- version_requirements: &id015 !ruby/object:Gem::Requirement
242
+ version_requirements: &id016 !ruby/object:Gem::Requirement
229
243
  none: false
230
244
  requirements:
231
245
  - - ~>
@@ -237,9 +251,9 @@ dependencies:
237
251
  name: rack
238
252
  prerelease: false
239
253
  type: :runtime
240
- requirement: *id015
254
+ requirement: *id016
241
255
  - !ruby/object:Gem::Dependency
242
- version_requirements: &id016 !ruby/object:Gem::Requirement
256
+ version_requirements: &id017 !ruby/object:Gem::Requirement
243
257
  none: false
244
258
  requirements:
245
259
  - - ~>
@@ -251,9 +265,9 @@ dependencies:
251
265
  name: thor
252
266
  prerelease: false
253
267
  type: :runtime
254
- requirement: *id016
268
+ requirement: *id017
255
269
  - !ruby/object:Gem::Dependency
256
- version_requirements: &id017 !ruby/object:Gem::Requirement
270
+ version_requirements: &id018 !ruby/object:Gem::Requirement
257
271
  none: false
258
272
  requirements:
259
273
  - - ">="
@@ -266,9 +280,9 @@ dependencies:
266
280
  name: json
267
281
  prerelease: false
268
282
  type: :runtime
269
- requirement: *id017
283
+ requirement: *id018
270
284
  - !ruby/object:Gem::Dependency
271
- version_requirements: &id018 !ruby/object:Gem::Requirement
285
+ version_requirements: &id019 !ruby/object:Gem::Requirement
272
286
  none: false
273
287
  requirements:
274
288
  - - ">="
@@ -281,9 +295,24 @@ dependencies:
281
295
  name: sass
282
296
  prerelease: false
283
297
  type: :runtime
284
- requirement: *id018
298
+ requirement: *id019
285
299
  - !ruby/object:Gem::Dependency
286
- version_requirements: &id019 !ruby/object:Gem::Requirement
300
+ version_requirements: &id020 !ruby/object:Gem::Requirement
301
+ none: false
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ hash: 3
306
+ segments:
307
+ - 2
308
+ - 0
309
+ version: "2.0"
310
+ name: less
311
+ prerelease: false
312
+ type: :runtime
313
+ requirement: *id020
314
+ - !ruby/object:Gem::Dependency
315
+ version_requirements: &id021 !ruby/object:Gem::Requirement
287
316
  none: false
288
317
  requirements:
289
318
  - - ~>
@@ -295,9 +324,9 @@ dependencies:
295
324
  name: coffee-script
296
325
  prerelease: false
297
326
  type: :runtime
298
- requirement: *id019
327
+ requirement: *id021
299
328
  - !ruby/object:Gem::Dependency
300
- version_requirements: &id020 !ruby/object:Gem::Requirement
329
+ version_requirements: &id022 !ruby/object:Gem::Requirement
301
330
  none: false
302
331
  requirements:
303
332
  - - ">="
@@ -309,9 +338,9 @@ dependencies:
309
338
  name: uglifier
310
339
  prerelease: false
311
340
  type: :runtime
312
- requirement: *id020
341
+ requirement: *id022
313
342
  - !ruby/object:Gem::Dependency
314
- version_requirements: &id021 !ruby/object:Gem::Requirement
343
+ version_requirements: &id023 !ruby/object:Gem::Requirement
315
344
  none: false
316
345
  requirements:
317
346
  - - ">="
@@ -324,7 +353,7 @@ dependencies:
324
353
  name: mime-types
325
354
  prerelease: false
326
355
  type: :runtime
327
- requirement: *id021
356
+ requirement: *id023
328
357
  description: Renders all asset types (coffeescript/sass/scss) as equals
329
358
  email: me@tal.by
330
359
  executables:
@@ -359,6 +388,7 @@ files:
359
388
  - examples/public/javascripts/test.coffee
360
389
  - examples/public/javascripts/three.js
361
390
  - examples/public/javascripts/two.js
391
+ - examples/public/stylesheets/less.less
362
392
  - examples/public/stylesheets/one.css
363
393
  - examples/public/stylesheets/one1.sass
364
394
  - examples/public/stylesheets/two.css
@@ -372,12 +402,14 @@ files:
372
402
  - lib/assette/post_processor.rb
373
403
  - lib/assette/post_processors.rb
374
404
  - lib/assette/post_processors/cache_buster.rb
405
+ - lib/assette/post_processors/css_min.rb
375
406
  - lib/assette/post_processors/js_min.rb
376
407
  - lib/assette/reader.rb
377
408
  - lib/assette/readers.rb
378
409
  - lib/assette/readers/coffee.rb
379
410
  - lib/assette/readers/css.rb
380
411
  - lib/assette/readers/js.rb
412
+ - lib/assette/readers/less.rb
381
413
  - lib/assette/readers/sass.rb
382
414
  - lib/assette/readers/scss.rb
383
415
  - lib/assette/run.ru