less-rails 2.4.0 → 2.4.1

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODA4ZTRlODRjZDcwZTkyNjg4OWFkYzFlYzI2NDIwM2NkNDUwZGRkNQ==
4
+ ZTBiNWI5NzczYTlhNzc2MTMxZDcxYjQ3N2RhMmQ2OTgwNjM5MjVmNQ==
5
5
  data.tar.gz: !binary |-
6
- ODFiY2M4ZjQ0ODkwNjc4OTkzMDZkNWMyNjUwMGEzOWVmMDE2NjMwYQ==
6
+ NzYxZWIzZDBkZmIxZTNlMWUwY2E4MGMzZGY3OTk1ZDdjMzYzZTAzYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NzQ5NGQwZDA1MDQ5ZTFlOWVlZGYwNzI1MDE4ZDg3ZWRkZDYyNjMwNDE3NmM5
10
- NTM0ZDQzZGQ2YTE3ZjBiZWRiMzUxM2E2YmI3OGE0ZDVhMzYzZGIzOTJlNmQw
11
- YmFlMWNhNTUwY2QzNGUwZGFhOGE4ZmI4MDQwNWExZmM5MGM1MmE=
9
+ MzIyZTMyYmY3NjMyYmRmN2RhY2YwZTk5ODZiZjgwMGJlMTIxY2NkOTk4ZjE2
10
+ ZmExOTc1NWY5MWQxZDJmNzUyZTU2MmE5MzU0OWM2MGMzODE5ZDMxZTg1YzQ5
11
+ NTlkNGQ2OWY2ZWQ5Y2I3NzExZjM3ODRkMjUxZmZiMzU1Mzc3MmQ=
12
12
  data.tar.gz: !binary |-
13
- ZWY0YjhkYTkwY2QwNzY3YmU0MGY4NTNhZDdhNmM0ZTRjZTA5Yzk4Zjg0N2Zh
14
- YzA4MjBkNDE5ZTg0ZGNiMzAwZDY2ZjQwOTBlYmJiYTY0OGEzZDM1ODg1MTgx
15
- MGY4NmJlYjk2NjNkODQzZjYxNjcyZDIxNmM5YWY1NzE5N2UyZWE=
13
+ ZTc3NzA2MTg1MjNiOTZkMTBhYzNmNDI0MDZlNzEyOTA1MzZhMzcxMzliMjgy
14
+ MDUxMzk5ZWRhYTVkNjRlMTljNDBjOGU3MDA2NzI1ZWQ4ZThlOTIxMjljNzk0
15
+ OGFiNzY0MDJhOGE4ZTM1NTAwN2RjYjA1ZjliOTlkODM1NjY2NDQ=
data/.gitignore CHANGED
@@ -4,4 +4,5 @@
4
4
  pkg/*
5
5
  *.log
6
6
  tmp/*
7
- test/dummy_app/tmp/cache/assets/*
7
+ test/dummy_app/tmp/cache/assets/*
8
+ gemfiles/*.gemfile
data/.travis.yml CHANGED
@@ -1,21 +1,13 @@
1
1
  rvm:
2
- - 1.8.7
3
2
  - 1.9.3
4
3
  - 2.0.0
5
- - jruby-18mode
6
4
  - jruby-19mode
7
- gemfile:
8
- - gemfiles/rails31.gemfile
9
- - gemfiles/rails32.gemfile
10
- - gemfiles/rails40.gemfile
11
5
  before_install:
12
6
  - gem install bundler
13
7
  - bundle --version
14
- matrix:
15
- exclude:
16
- - rvm: 1.8.7
17
- gemfile: gemfiles/rails40.gemfile
18
- - rvm: jruby-18mode
19
- gemfile: gemfiles/rails40.gemfile
20
- - rvm: jruby-19mode
21
- gemfile: gemfiles/rails40.gemfile
8
+ install:
9
+ - bundle install
10
+ before_script:
11
+ - bundle exec rake appraisal:setup
12
+ script:
13
+ - bundle exec rake appraisal test
data/Appraisals CHANGED
@@ -8,5 +8,5 @@ appraise 'rails32' do
8
8
  end
9
9
 
10
10
  appraise 'rails40' do
11
- gem 'rails', '~> 4.0.0.beta'
11
+ gem 'rails', '~> 4.0.0'
12
12
  end
data/CHANGELOG.md CHANGED
@@ -1,138 +1,114 @@
1
- CHANGELOG
2
- =========
1
+ # CHANGELOG
3
2
 
4
- 2.4.0 - 09/04/2013
3
+ ### 2.4.1 - 2013-09-07
5
4
 
6
- * Moving to less.rb 2.4.x which is current v1.4.2 of less.
5
+ * Fix import hooks to allow relative paths to files. Fixes #72 and #64.
6
+ * Use config.(before|after)_initialize for better railtie pattern. Fixed #68.
7
7
 
8
+ ### 2.4.0 - 2013-09-04
8
9
 
9
- 2.3.3 - 04/16/2013
10
+ * Moving to less.rb 2.4.x which is current v### 1.4.2 of less.
10
11
 
11
- * Implement dumpLineNumbers functionality. Thanks @matthew342.
12
+ ### 2.3.3 - 2013-04-16
12
13
 
14
+ * Implement dumpLineNumbers functionality. Thanks @matthew342.
13
15
 
14
- 2.3.2 - 03/06/2013
16
+ ### 2.3.2 - 2013-03-06
15
17
 
16
18
  * Rails 4 compatability. Thanks @zhengjia.
17
19
 
20
+ ### 2.3.1 - 2013-03-06
18
21
 
19
- 2.3.1 - 03/06/2013
20
-
21
- * Update to less gem 2.3.1 which really uses less v1.3.3
22
+ * Update to less gem ### 2.3.1 which really uses less v### 1.3.3
22
23
 
24
+ ### 2.3.0 - 2013-03-06
23
25
 
24
- 2.3.0 - 03/06/2013
26
+ * Update to less gem ### 2.3.0 thanks @leifcr
25
27
 
26
- * Update to less gem 2.3.0 thanks @leifcr
27
-
28
-
29
- 2.2.6 - 10/31/2012
28
+ ### 2.2.6 - 2012-10-31
30
29
 
31
30
  * Accidental release. Nothing new.
32
31
 
33
-
34
- 2.2.5 - 10/28/2012
32
+ ### 2.2.5 - 2012-10-28
35
33
 
36
34
  * Real Rails 4 compatability thanks to @yalab
37
35
 
38
-
39
- 2.2.4 - 10/20/2012
36
+ ### 2.2.4 - 2012-10-20
40
37
 
41
38
  * Rails 4 compatability with Sprockets vs app.assets.
42
39
 
43
-
44
- 2.2.3 - 05/27/2012
40
+ ### 2.2.3 - 2012-05-27
45
41
 
46
42
  * Add default_mime_type to template class since it does not inherit from Tilt's.
47
43
  Should fix https://github.com/metaskills/less-rails/issues/35
48
44
 
49
-
50
- 2.2.2 - 04/25/2012
45
+ ### 2.2.2 - 2012-04-25
51
46
 
52
47
  * Remove explicit dependency on therubyracer
53
48
  * Add jruby and jruby --1.9 to travis configuration
54
49
  * Officially support JRuby
55
50
 
56
-
57
- 2.2.1 - 04/15/2012
51
+ ### 2.2.1 - 2012-04-15
58
52
 
59
53
  * Make it usable with therubyrhino (and older versions of therubyracer as well). Fixes #36.
60
54
 
61
-
62
- 2.2.0 - 03/29/2012
55
+ ### 2.2.0 - 2012-03-29
63
56
 
64
57
  * Upgrade to therubyracer 0.10.x call semantics. Fixes #34.
65
58
 
66
-
67
- 2.1.8 - 03/15/2012
59
+ ### 2.1.8 - 2012-03-15
68
60
 
69
61
  * Work with edge rails/sprockets. Fixes #31.
70
62
 
71
-
72
- 2.1.7 - 03/07/2012
63
+ ### 2.1.7 - 2012-03-07
73
64
 
74
65
  * More defensive railtie when examing asset paths. Fixes #30.
75
66
 
76
-
77
- 2.1.6 - 02/16/2012
67
+ ### 2.1.6 - 2012-02-16
78
68
 
79
69
  * Nested imports recursively declare sprockets dependencies. Fixes #26.
80
70
 
81
-
82
- 2.1.4, 2.1.5 - 01/31/2012
71
+ ### 2.1.4, ### 2.1.5 - 2012-01-31
83
72
 
84
73
  * More friendly import processor with missing files. Fixes #13.
85
74
 
86
-
87
- 2.1.3 - 01/23/2012
75
+ ### 2.1.3 - 2012-01-23
88
76
 
89
77
  * Make sure vendor/assets/stylesheets .less files work.
90
78
 
91
-
92
- 2.1.2 - 12/20/2011
79
+ ### 2.1.2 - 2011-12-20
93
80
 
94
81
  * No notes.
95
82
 
96
-
97
- 2.1.1 - 11/24/2011
98
- ------------------
83
+ ### 2.1.1 - 2011-11-24
99
84
 
100
85
  * All app asset stylesheet paths are added to less paths.
101
86
 
87
+ ### 2.1.0 - 2011-11-18
102
88
 
103
- 2.1.0 - 11/18/2011
104
- ------------------
105
89
  * Remove our basic CssCompressor since it can not handle real world general purpose JS
106
90
  compression. Instead set parse compression and recommend final YUI Compressor. Fixes #7.
107
91
  * Import preprocessor so @import'ed less files are automatic asset dependencies. Fixes #3.
108
92
 
93
+ ### 2.0.3 - 2011-11-13
109
94
 
110
- 2.0.3 - 11/13/2011
111
- ------------------
112
95
  * Add generator support. Fixes #8.
113
96
  * Add a Less::Rails::CssCompressor if config.assets.compress is true. Fixes #7.
114
97
 
98
+ ### 2.0.2 - 2011-10-09
115
99
 
116
- 2.0.2 - 10/09/2011
117
- ------------------
118
100
  * Extend LESS with Rails asset pipeline helpers.
119
101
  * New testing support with MiniTest::Spec and dummy Rails::Application.
120
102
  * New config.options hash passed down to the #to_css method.
121
103
 
122
-
123
- 2.0.1 - 09/28/2011
124
- ------------------
104
+ ### 2.0.1 - 2011-09-28
125
105
 
126
106
  * Fix require of less/rails/railtie.rb. Thanks Benoit Bénézech (bbenezech).
127
107
 
128
-
129
- 2.0.0 - 09/25/2011
130
- ------------------
108
+ ### 2.0.0 - 2011-09-25
131
109
 
132
110
  * Initial 2.0 release. Heavily inspired/copied code from sass-rails.
133
111
 
134
-
135
- 1.0.0 - 02/02/2010
136
- ------------------
112
+ ### 1.0.0 - 2010-02-02
137
113
 
138
114
  * Original project at http://github.com/yeastymobs/less-rails
data/gemfiles/.keep ADDED
File without changes
@@ -3,6 +3,13 @@ module Less
3
3
  class ImportProcessor < Tilt::Template
4
4
 
5
5
  IMPORT_SCANNER = /@import\s*['"]([^'"]+)['"]\s*;/.freeze
6
+ PATHNAME_FINDER = Proc.new { |scope, path|
7
+ begin
8
+ scope.resolve(path)
9
+ rescue Sprockets::FileNotFound
10
+ nil
11
+ end
12
+ }
6
13
 
7
14
  def prepare
8
15
  end
@@ -11,21 +18,17 @@ module Less
11
18
  depend_on scope, data
12
19
  data
13
20
  end
14
-
15
- def depend_on(scope, data)
21
+
22
+ def depend_on(scope, data, base=File.dirname(scope.logical_path))
16
23
  import_paths = data.scan(IMPORT_SCANNER).flatten.compact.uniq
17
24
  import_paths.each do |path|
18
- pathname = begin
19
- scope.resolve(path)
20
- rescue Sprockets::FileNotFound
21
- nil
22
- end
23
- scope.depend_on(path) if pathname && pathname.to_s.ends_with?('.less')
24
- depend_on scope, File.read(pathname) if pathname
25
+ pathname = PATHNAME_FINDER.call(scope,path) || PATHNAME_FINDER.call(scope, File.join(base, path))
26
+ scope.depend_on(pathname) if pathname && pathname.to_s.ends_with?('.less')
27
+ depend_on scope, File.read(pathname), File.dirname(path) if pathname
25
28
  end
26
29
  data
27
30
  end
28
-
31
+
29
32
  end
30
33
  end
31
34
  end
@@ -10,24 +10,37 @@ module Less
10
10
  config.less.paths = []
11
11
  config.less.compress = false
12
12
  config.app_generators.stylesheet_engine :less
13
-
14
- config.before_initialize do |app|
15
- require 'less'
16
- require 'less-rails'
17
- Sprockets::Engines #force autoloading
18
- Sprockets.register_engine '.less', Less::Rails::LessTemplate
19
- end
20
-
21
- initializer 'less-rails.before.load_config_initializers', :before => :load_config_initializers, :group => :all do |app|
22
- if ::Rails::VERSION::MAJOR < 4
23
- raise 'The less-rails plugin requires the asset pipeline to be enabled.' unless app.config.assets.enabled
13
+
14
+ if ::Rails::VERSION::STRING =~ /\A3.[12]/
15
+
16
+ config.before_initialize do |app|
17
+ require 'less'
18
+ require 'less-rails'
19
+ Sprockets::Engines #force autoloading
20
+ Sprockets.register_engine '.less', LessTemplate
24
21
  end
25
- (Sprockets.respond_to?('register_preprocessor') ? Sprockets : app.assets).register_preprocessor 'text/css', ImportProcessor
26
- end
27
-
28
- initializer 'less-rails.after.load_config_initializers', :after => :load_config_initializers, :group => :all do |app|
29
- app.assets.context_class.extend(LessContext)
30
- app.assets.context_class.less_config = app.config.less
22
+
23
+ initializer 'less-rails.after.load_config_initializers', :after => :load_config_initializers, :group => :all do |app|
24
+ (Sprockets.respond_to?('register_preprocessor') ? Sprockets : app.assets).register_preprocessor 'text/css', ImportProcessor
25
+ app.assets.context_class.extend(LessContext)
26
+ app.assets.context_class.less_config = app.config.less
27
+ end
28
+
29
+ else
30
+
31
+ config.before_initialize do |app|
32
+ require 'less'
33
+ require 'less-rails'
34
+ Sprockets::Engines #force autoloading
35
+ Sprockets.register_engine '.less', LessTemplate
36
+ (Sprockets.respond_to?('register_preprocessor') ? Sprockets : app.assets).register_preprocessor 'text/css', ImportProcessor
37
+ end
38
+
39
+ config.after_initialize do |app|
40
+ app.assets.context_class.extend(LessContext)
41
+ app.assets.context_class.less_config = app.config.less
42
+ end
43
+
31
44
  end
32
45
 
33
46
  initializer 'less-rails.after.append_assets_path', :after => :append_assets_path, :group => :all do |app|
@@ -24,6 +24,8 @@ module Less
24
24
 
25
25
  def config_to_less_parser_options(scope)
26
26
  paths = config_paths(scope) + scope.environment.paths
27
+ local_path = scope.pathname.dirname
28
+ paths += [local_path] unless paths.include? local_path
27
29
  {:filename => eval_file, :line => line, :paths => paths, :dumpLineNumbers => config_from_rails(scope).line_numbers}
28
30
  end
29
31
 
@@ -1,5 +1,5 @@
1
1
  module Less
2
2
  module Rails
3
- VERSION = "2.4.0"
3
+ VERSION = "2.4.1"
4
4
  end
5
5
  end
@@ -33,7 +33,16 @@ class BasicsSpec < Less::Rails::Spec
33
33
  basics.must_match %r{#test-variable-colored\{color:#666\}}, 'variables.less should be a sprockets context dependency'
34
34
  end
35
35
  end
36
-
36
+
37
+ it 'must update when an imported file of another imported file changes, and that file is imported via a relative path' do
38
+ basics.must_match %r{#test-variable-relative-path-colored}i, 'default is #BADA55'
39
+ safely_edit(:variables_via_relative_path) do |data, asset|
40
+ data.gsub! 'BADA55', 'BA73A2'
41
+ File.open(asset.pathname,'w') { |f| f.write(data) }
42
+ basics.must_match %r{#test-variable-relative-path-colored}i, 'variables_via_relative_path.less should be a sprockets context dependency'
43
+ end
44
+ end
45
+
37
46
  end
38
47
 
39
48
  protected
@@ -49,7 +58,11 @@ class BasicsSpec < Less::Rails::Spec
49
58
  def variables_asset
50
59
  dummy_assets['frameworks/bootstrap/variables.less']
51
60
  end
52
-
61
+
62
+ def variables_via_relative_path_asset
63
+ dummy_assets['frameworks/bootstrap/variables_via_relative_path.less']
64
+ end
65
+
53
66
  def safely_edit(name)
54
67
  asset = send :"#{name}_asset"
55
68
  data = File.read(asset.pathname)
@@ -11,6 +11,7 @@
11
11
  @import "frameworks/bootstrap/mixins";
12
12
  #test-radiused { .radiused; }
13
13
  #test-variable-colored { .variableColored; }
14
+ #test-variable-relative-path-colored { .variableRelativePathColored; }
14
15
 
15
16
  // Vendored
16
17
  @import "vendored";
@@ -1,5 +1,6 @@
1
1
 
2
2
  @import "frameworks/bootstrap/variables";
3
+ @import "variables_via_relative_path";
3
4
 
4
5
  .radiused(@radius: 5px) {
5
6
  border-radius: @radius;
@@ -8,3 +9,7 @@
8
9
  .variableColored() {
9
10
  color: @variableColor;
10
11
  }
12
+
13
+ .variableRelativePathColored() {
14
+ color: @variableRelativePathColor;
15
+ }
@@ -0,0 +1,2 @@
1
+
2
+ @variableRelativePathColor: #BADA55;
data/test/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require 'bundler'
3
3
  Bundler.require
4
4
  require 'less/rails'
5
5
  require 'minitest/autorun'
6
+ require 'minitest/spec'
6
7
  require 'dummy_app/init'
7
8
  require 'rails/generators'
8
9
  require 'fileutils'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: less-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-04 00:00:00.000000000 Z
11
+ date: 2013-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -111,9 +111,7 @@ files:
111
111
  - MIT-LICENSE
112
112
  - README.md
113
113
  - Rakefile
114
- - gemfiles/rails31.gemfile
115
- - gemfiles/rails32.gemfile
116
- - gemfiles/rails40.gemfile
114
+ - gemfiles/.keep
117
115
  - less-rails.gemspec
118
116
  - lib/less-rails.rb
119
117
  - lib/less/rails.rb
@@ -134,6 +132,7 @@ files:
134
132
  - test/dummy_app/app/assets/stylesheets/basics.css.less
135
133
  - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/mixins.less
136
134
  - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/variables.less
135
+ - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/variables_via_relative_path.less
137
136
  - test/dummy_app/app/assets/stylesheets/helpers.css.less
138
137
  - test/dummy_app/init.rb
139
138
  - test/dummy_app/tmp/.gitkeep
@@ -173,6 +172,7 @@ test_files:
173
172
  - test/dummy_app/app/assets/stylesheets/basics.css.less
174
173
  - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/mixins.less
175
174
  - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/variables.less
175
+ - test/dummy_app/app/assets/stylesheets/frameworks/bootstrap/variables_via_relative_path.less
176
176
  - test/dummy_app/app/assets/stylesheets/helpers.css.less
177
177
  - test/dummy_app/init.rb
178
178
  - test/dummy_app/tmp/.gitkeep
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "therubyracer", "~> 0.10.0", :require=>nil, :platforms=>:ruby
6
- gem "therubyrhino", "~> 2.0.2", :require=>nil, :platforms=>:jruby
7
- gem "rails", "~> 3.1.0"
8
-
9
- gemspec :path=>"../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "therubyracer", "~> 0.10.0", :require=>nil, :platforms=>:ruby
6
- gem "therubyrhino", "~> 2.0.2", :require=>nil, :platforms=>:jruby
7
- gem "rails", "~> 3.2.0"
8
-
9
- gemspec :path=>"../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "therubyracer", "~> 0.10.0", :require=>nil, :platforms=>:ruby
6
- gem "therubyrhino", "~> 2.0.2", :require=>nil, :platforms=>:jruby
7
- gem "rails", "~> 4.0.0.beta"
8
-
9
- gemspec :path=>"../"