assette 0.0.13 → 0.1.0

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 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