sprockets-sass 1.3.1 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.reek +12 -0
  3. data/.rubocop.yml +77 -0
  4. data/.travis.yml +16 -0
  5. data/Appraisals +32 -15
  6. data/Gemfile +5 -0
  7. data/README.md +41 -4
  8. data/Rakefile +15 -3
  9. data/gemfiles/compass_0.11.gemfile +1 -1
  10. data/gemfiles/sass_3.1.gemfile +1 -1
  11. data/gemfiles/sass_3.3.gemfile +8 -0
  12. data/gemfiles/sass_3.4.gemfile +8 -0
  13. data/gemfiles/sprockets_2.10.gemfile +1 -1
  14. data/gemfiles/sprockets_2.11.gemfile +1 -1
  15. data/gemfiles/sprockets_2.2.gemfile +1 -1
  16. data/gemfiles/sprockets_2.3.gemfile +1 -1
  17. data/gemfiles/sprockets_2.4.gemfile +1 -1
  18. data/gemfiles/sprockets_2.5.gemfile +1 -1
  19. data/gemfiles/sprockets_2.6.gemfile +1 -1
  20. data/gemfiles/sprockets_2.7.gemfile +1 -1
  21. data/gemfiles/sprockets_2.8.gemfile +1 -1
  22. data/gemfiles/sprockets_2.9.gemfile +1 -1
  23. data/gemfiles/sprockets_3.7.gemfile +9 -0
  24. data/gemfiles/sprockets_4.0.gemfile +10 -0
  25. data/gemfiles/sprockets_4.0_beta2.gemfile +9 -0
  26. data/lib/sprockets-sass.rb +1 -0
  27. data/lib/sprockets/sass.rb +37 -12
  28. data/lib/sprockets/sass/functions.rb +24 -159
  29. data/lib/sprockets/sass/registration.rb +126 -0
  30. data/lib/sprockets/sass/utils.rb +115 -0
  31. data/lib/sprockets/sass/v2/cache_store.rb +26 -0
  32. data/lib/sprockets/sass/v2/compressor.rb +31 -0
  33. data/lib/sprockets/sass/v2/functions.rb +142 -0
  34. data/lib/sprockets/sass/v2/importer.rb +209 -0
  35. data/lib/sprockets/sass/v2/sass_template.rb +221 -0
  36. data/lib/sprockets/sass/v2/scss_template.rb +14 -0
  37. data/lib/sprockets/sass/v3/cache_store.rb +28 -0
  38. data/lib/sprockets/sass/v3/compressor.rb +97 -0
  39. data/lib/sprockets/sass/v3/functions.rb +12 -0
  40. data/lib/sprockets/sass/v3/importer.rb +212 -0
  41. data/lib/sprockets/sass/v3/sass_template.rb +37 -0
  42. data/lib/sprockets/sass/v3/scss_template.rb +15 -0
  43. data/lib/sprockets/sass/v4/cache_store.rb +11 -0
  44. data/lib/sprockets/sass/v4/compressor.rb +11 -0
  45. data/lib/sprockets/sass/v4/functions.rb +12 -0
  46. data/lib/sprockets/sass/v4/importer.rb +105 -0
  47. data/lib/sprockets/sass/v4/sass_template.rb +27 -0
  48. data/lib/sprockets/sass/v4/scss_template.rb +16 -0
  49. data/lib/sprockets/sass/version.rb +2 -1
  50. data/spec/custom_importer_spec.rb +4 -6
  51. data/spec/spec_helper.rb +30 -3
  52. data/spec/sprockets-sass_spec.rb +101 -61
  53. data/spec/support/be_fresh_matcher.rb +10 -6
  54. data/spec/support/dummy_importer.rb +1 -1
  55. data/spec/support/fail_postprocessor.rb +23 -0
  56. data/spec/support/sass_template.rb +11 -0
  57. data/sprockets-sass.gemspec +27 -8
  58. metadata +92 -95
  59. data/gemfiles/compass_0.12.gemfile +0 -7
  60. data/gemfiles/sass_3.2.gemfile +0 -7
  61. data/gemfiles/sprockets_2.0.gemfile +0 -7
  62. data/gemfiles/sprockets_2.1.gemfile +0 -9
  63. data/lib/sprockets/sass/cache_store.rb +0 -27
  64. data/lib/sprockets/sass/compressor.rb +0 -22
  65. data/lib/sprockets/sass/importer.rb +0 -142
  66. data/lib/sprockets/sass/sass_template.rb +0 -115
  67. data/lib/sprockets/sass/scss_template.rb +0 -12
@@ -1,16 +1,20 @@
1
- RSpec::Matchers.define :be_fresh do |env|
1
+ RSpec::Matchers.define :be_fresh do |env, old_asset|
2
2
  match do |actual|
3
- if actual.method(:fresh?).arity == 1
4
- actual.fresh?(env)
3
+ if actual.respond_to?(:fresh?)
4
+ if actual.method(:fresh?).arity == 1
5
+ actual.fresh?(env)
6
+ else
7
+ actual.fresh?
8
+ end
5
9
  else
6
- actual.fresh?
10
+ actual.eql?(old_asset)
7
11
  end
8
12
  end
9
-
13
+
10
14
  failure_message_for_should do |env|
11
15
  'expected asset to be fresh'
12
16
  end
13
-
17
+
14
18
  failure_message_for_should_not do |env|
15
19
  'expected asset to be stale'
16
20
  end
@@ -1,7 +1,7 @@
1
1
  module Sprockets
2
2
  module Sass
3
3
 
4
- class DummyImporter < Importer
4
+ class DummyImporter < Sprockets::Sass::Utils.get_class_by_version("Importer")
5
5
  attr_accessor :has_been_used
6
6
 
7
7
  def initialize
@@ -0,0 +1,23 @@
1
+ class FailPostProcessor
2
+ def initialize(filename, &block)
3
+ @filename = filename
4
+ @source = block.call
5
+ end
6
+
7
+ def render(context, empty_hash_wtf)
8
+ self.class.run(@filename, @source, context)
9
+ end
10
+
11
+ def self.run(filename, source, context)
12
+ source.gsub /@import/, 'fail engine'
13
+ end
14
+
15
+ def self.call(input)
16
+ filename = input[:filename]
17
+ source = input[:data]
18
+ context = input[:environment].context_class.new(input)
19
+
20
+ result = run(filename, source, context)
21
+ context.metadata.merge(data: result)
22
+ end
23
+ end
@@ -0,0 +1,11 @@
1
+ module Sprockets
2
+ module Sass
3
+ class SassTemplate < Sprockets::Sass::Utils.get_class_by_version("SassTemplate")
4
+
5
+ def initialize(*args, &block)
6
+ super(*args, &block)
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
2
+ # frozen_string_literal: true
3
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
4
  require 'sprockets/sass/version'
4
5
 
5
6
  Gem::Specification.new do |s|
@@ -8,24 +9,42 @@ Gem::Specification.new do |s|
8
9
  s.authors = ['Pete Browne']
9
10
  s.email = ['me@petebrowne.com']
10
11
  s.homepage = 'http://github.com/petebrowne/sprockets-sass'
11
- s.summary = %q{Better Sass integration with Sprockets 2.0}
12
- s.description = %q{When using Sprockets 2.0 with Sass you will eventually run into a pretty big issue. `//= require` directives will not allow Sass mixins, variables, etc. to be shared between files. So you'll try to use `@import`, and that'll also blow up in your face. `sprockets-sass` fixes all of this by creating a Sass::Importer that is Sprockets aware.}
12
+ s.summary = 'Better Sass integration with Sprockets 2.0'
13
+ s.description = "When using Sprockets 2.0 with Sass you will eventually run into a pretty big issue. `//= require` directives will not allow Sass mixins, variables, etc. to be shared between files. So you'll try to use `@import`, and that'll also blow up in your face. `sprockets-sass` fixes all of this by creating a Sass::Importer that is Sprockets aware."
13
14
 
14
15
  s.rubyforge_project = 'sprockets-sass'
15
16
 
17
+ # usually the license needs to be specified in gemspec also as a standard
18
+ s.licenses = ['MIT']
19
+
20
+ # This is needed so that on rubygems.org we can see the actual date
21
+ # of the published version due to changes in Rubygems repo over the last year(2015 - 2016)
22
+ s.date = Date.today
23
+
24
+ # usually the platform needs to be specified also, to avoid people trying to install this gem on wrong platform
25
+ s.platform = Gem::Platform::RUBY
26
+
27
+ s.required_ruby_version = '>= 2.0'
28
+ s.required_rubygems_version = '>= 2.0'
29
+ s.metadata = {
30
+ 'source_url' => s.homepage,
31
+ 'issue_tracker' => "#{s.homepage}/issues"
32
+ }
33
+
16
34
  s.files = `git ls-files`.split("\n")
17
35
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split('\n').map{ |f| File.basename(f) }
36
+ s.executables = `git ls-files -- bin/*`.split('\n').map { |f| File.basename(f) }
19
37
  s.require_paths = ['lib']
20
38
 
21
- s.add_dependency 'sprockets', '~> 2.0'
22
- s.add_dependency 'tilt', '~> 1.1'
23
- s.add_development_dependency 'appraisal', '~> 0.5'
39
+ s.add_dependency 'sprockets', '>= 2.0', '< 4.0'
40
+
24
41
  s.add_development_dependency 'rspec', '~> 2.13'
25
42
  s.add_development_dependency 'test_construct', '~> 2.0'
26
43
  s.add_development_dependency 'sprockets-helpers', '~> 1.0'
27
44
  s.add_development_dependency 'sass', '~> 3.3'
28
45
  s.add_development_dependency 'compass', '~> 1.0.0.alpha.19'
29
- s.add_development_dependency 'rake'
30
46
  s.add_development_dependency 'pry'
47
+
48
+ s.add_development_dependency 'appraisal', '~> 2.1', '>= 2.1'
49
+ s.add_development_dependency 'rake', '>= 10.5', '>= 10.5'
31
50
  end
metadata CHANGED
@@ -1,176 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
5
- prerelease:
4
+ version: 2.0.0.beta1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pete Browne
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-12-31 00:00:00.000000000 Z
11
+ date: 2016-08-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: sprockets
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '2.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.0'
30
- - !ruby/object:Gem::Dependency
31
- name: tilt
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
20
+ - - "<"
36
21
  - !ruby/object:Gem::Version
37
- version: '1.1'
22
+ version: '4.0'
38
23
  type: :runtime
39
24
  prerelease: false
40
25
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
26
  requirements:
43
- - - ~>
27
+ - - ">="
44
28
  - !ruby/object:Gem::Version
45
- version: '1.1'
46
- - !ruby/object:Gem::Dependency
47
- name: appraisal
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '0.5'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
29
+ version: '2.0'
30
+ - - "<"
60
31
  - !ruby/object:Gem::Version
61
- version: '0.5'
32
+ version: '4.0'
62
33
  - !ruby/object:Gem::Dependency
63
34
  name: rspec
64
35
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
36
  requirements:
67
- - - ~>
37
+ - - "~>"
68
38
  - !ruby/object:Gem::Version
69
39
  version: '2.13'
70
40
  type: :development
71
41
  prerelease: false
72
42
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
43
  requirements:
75
- - - ~>
44
+ - - "~>"
76
45
  - !ruby/object:Gem::Version
77
46
  version: '2.13'
78
47
  - !ruby/object:Gem::Dependency
79
48
  name: test_construct
80
49
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
50
  requirements:
83
- - - ~>
51
+ - - "~>"
84
52
  - !ruby/object:Gem::Version
85
53
  version: '2.0'
86
54
  type: :development
87
55
  prerelease: false
88
56
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
57
  requirements:
91
- - - ~>
58
+ - - "~>"
92
59
  - !ruby/object:Gem::Version
93
60
  version: '2.0'
94
61
  - !ruby/object:Gem::Dependency
95
62
  name: sprockets-helpers
96
63
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
64
  requirements:
99
- - - ~>
65
+ - - "~>"
100
66
  - !ruby/object:Gem::Version
101
67
  version: '1.0'
102
68
  type: :development
103
69
  prerelease: false
104
70
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
71
  requirements:
107
- - - ~>
72
+ - - "~>"
108
73
  - !ruby/object:Gem::Version
109
74
  version: '1.0'
110
75
  - !ruby/object:Gem::Dependency
111
76
  name: sass
112
77
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
78
  requirements:
115
- - - ~>
79
+ - - "~>"
116
80
  - !ruby/object:Gem::Version
117
81
  version: '3.3'
118
82
  type: :development
119
83
  prerelease: false
120
84
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
85
  requirements:
123
- - - ~>
86
+ - - "~>"
124
87
  - !ruby/object:Gem::Version
125
88
  version: '3.3'
126
89
  - !ruby/object:Gem::Dependency
127
90
  name: compass
128
91
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
92
  requirements:
131
- - - ~>
93
+ - - "~>"
132
94
  - !ruby/object:Gem::Version
133
95
  version: 1.0.0.alpha.19
134
96
  type: :development
135
97
  prerelease: false
136
98
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
99
  requirements:
139
- - - ~>
100
+ - - "~>"
140
101
  - !ruby/object:Gem::Version
141
102
  version: 1.0.0.alpha.19
142
103
  - !ruby/object:Gem::Dependency
143
- name: rake
104
+ name: pry
144
105
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
106
  requirements:
147
- - - ! '>='
107
+ - - ">="
148
108
  - !ruby/object:Gem::Version
149
109
  version: '0'
150
110
  type: :development
151
111
  prerelease: false
152
112
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
113
  requirements:
155
- - - ! '>='
114
+ - - ">="
156
115
  - !ruby/object:Gem::Version
157
116
  version: '0'
158
117
  - !ruby/object:Gem::Dependency
159
- name: pry
118
+ name: appraisal
160
119
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
120
  requirements:
163
- - - ! '>='
121
+ - - "~>"
164
122
  - !ruby/object:Gem::Version
165
- version: '0'
123
+ version: '2.1'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '2.1'
166
127
  type: :development
167
128
  prerelease: false
168
129
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
130
  requirements:
171
- - - ! '>='
131
+ - - "~>"
172
132
  - !ruby/object:Gem::Version
173
- version: '0'
133
+ version: '2.1'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '2.1'
137
+ - !ruby/object:Gem::Dependency
138
+ name: rake
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '10.5'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '10.5'
174
151
  description: When using Sprockets 2.0 with Sass you will eventually run into a pretty
175
152
  big issue. `//= require` directives will not allow Sass mixins, variables, etc.
176
153
  to be shared between files. So you'll try to use `@import`, and that'll also blow
@@ -182,18 +159,20 @@ executables: []
182
159
  extensions: []
183
160
  extra_rdoc_files: []
184
161
  files:
185
- - .gitignore
162
+ - ".gitignore"
163
+ - ".reek"
164
+ - ".rspec"
165
+ - ".rubocop.yml"
166
+ - ".travis.yml"
186
167
  - Appraisals
187
168
  - Gemfile
188
169
  - LICENSE
189
170
  - README.md
190
171
  - Rakefile
191
172
  - gemfiles/compass_0.11.gemfile
192
- - gemfiles/compass_0.12.gemfile
193
173
  - gemfiles/sass_3.1.gemfile
194
- - gemfiles/sass_3.2.gemfile
195
- - gemfiles/sprockets_2.0.gemfile
196
- - gemfiles/sprockets_2.1.gemfile
174
+ - gemfiles/sass_3.3.gemfile
175
+ - gemfiles/sass_3.4.gemfile
197
176
  - gemfiles/sprockets_2.10.gemfile
198
177
  - gemfiles/sprockets_2.11.gemfile
199
178
  - gemfiles/sprockets_2.2.gemfile
@@ -204,14 +183,32 @@ files:
204
183
  - gemfiles/sprockets_2.7.gemfile
205
184
  - gemfiles/sprockets_2.8.gemfile
206
185
  - gemfiles/sprockets_2.9.gemfile
186
+ - gemfiles/sprockets_3.7.gemfile
187
+ - gemfiles/sprockets_4.0.gemfile
188
+ - gemfiles/sprockets_4.0_beta2.gemfile
207
189
  - lib/sprockets-sass.rb
208
190
  - lib/sprockets/sass.rb
209
- - lib/sprockets/sass/cache_store.rb
210
- - lib/sprockets/sass/compressor.rb
211
191
  - lib/sprockets/sass/functions.rb
212
- - lib/sprockets/sass/importer.rb
213
- - lib/sprockets/sass/sass_template.rb
214
- - lib/sprockets/sass/scss_template.rb
192
+ - lib/sprockets/sass/registration.rb
193
+ - lib/sprockets/sass/utils.rb
194
+ - lib/sprockets/sass/v2/cache_store.rb
195
+ - lib/sprockets/sass/v2/compressor.rb
196
+ - lib/sprockets/sass/v2/functions.rb
197
+ - lib/sprockets/sass/v2/importer.rb
198
+ - lib/sprockets/sass/v2/sass_template.rb
199
+ - lib/sprockets/sass/v2/scss_template.rb
200
+ - lib/sprockets/sass/v3/cache_store.rb
201
+ - lib/sprockets/sass/v3/compressor.rb
202
+ - lib/sprockets/sass/v3/functions.rb
203
+ - lib/sprockets/sass/v3/importer.rb
204
+ - lib/sprockets/sass/v3/sass_template.rb
205
+ - lib/sprockets/sass/v3/scss_template.rb
206
+ - lib/sprockets/sass/v4/cache_store.rb
207
+ - lib/sprockets/sass/v4/compressor.rb
208
+ - lib/sprockets/sass/v4/functions.rb
209
+ - lib/sprockets/sass/v4/importer.rb
210
+ - lib/sprockets/sass/v4/sass_template.rb
211
+ - lib/sprockets/sass/v4/scss_template.rb
215
212
  - lib/sprockets/sass/version.rb
216
213
  - spec/custom_importer_spec.rb
217
214
  - spec/fixtures/image.jpg
@@ -219,36 +216,34 @@ files:
219
216
  - spec/sprockets-sass_spec.rb
220
217
  - spec/support/be_fresh_matcher.rb
221
218
  - spec/support/dummy_importer.rb
219
+ - spec/support/fail_postprocessor.rb
220
+ - spec/support/sass_template.rb
222
221
  - sprockets-sass.gemspec
223
222
  homepage: http://github.com/petebrowne/sprockets-sass
224
- licenses: []
223
+ licenses:
224
+ - MIT
225
+ metadata:
226
+ source_url: http://github.com/petebrowne/sprockets-sass
227
+ issue_tracker: http://github.com/petebrowne/sprockets-sass/issues
225
228
  post_install_message:
226
229
  rdoc_options: []
227
230
  require_paths:
228
231
  - lib
229
232
  required_ruby_version: !ruby/object:Gem::Requirement
230
- none: false
231
233
  requirements:
232
- - - ! '>='
234
+ - - ">="
233
235
  - !ruby/object:Gem::Version
234
- version: '0'
235
- segments:
236
- - 0
237
- hash: 3609052118708628923
236
+ version: '2.0'
238
237
  required_rubygems_version: !ruby/object:Gem::Requirement
239
- none: false
240
238
  requirements:
241
- - - ! '>='
239
+ - - ">="
242
240
  - !ruby/object:Gem::Version
243
- version: '0'
244
- segments:
245
- - 0
246
- hash: 3609052118708628923
241
+ version: '2.0'
247
242
  requirements: []
248
243
  rubyforge_project: sprockets-sass
249
- rubygems_version: 1.8.23
244
+ rubygems_version: 2.4.5.1
250
245
  signing_key:
251
- specification_version: 3
246
+ specification_version: 4
252
247
  summary: Better Sass integration with Sprockets 2.0
253
248
  test_files:
254
249
  - spec/custom_importer_spec.rb
@@ -257,3 +252,5 @@ test_files:
257
252
  - spec/sprockets-sass_spec.rb
258
253
  - spec/support/be_fresh_matcher.rb
259
254
  - spec/support/dummy_importer.rb
255
+ - spec/support/fail_postprocessor.rb
256
+ - spec/support/sass_template.rb