sassc-rails 0.0.1 → 0.0.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +10 -0
  3. data/README.md +2 -2
  4. data/lib/sassc/rails.rb +3 -1
  5. data/lib/sassc/rails/functions.rb +0 -1
  6. data/lib/sassc/rails/importer.rb +69 -115
  7. data/lib/sassc/rails/railtie.rb +3 -1
  8. data/lib/sassc/rails/template.rb +1 -5
  9. data/lib/sassc/rails/version.rb +1 -1
  10. data/sassc-rails.gemspec +4 -1
  11. data/test/dummy/app/assets/fonts/fake-font.ttf +0 -0
  12. data/test/dummy/app/assets/stylesheets/_top_level_partial.scss +3 -0
  13. data/test/dummy/app/assets/stylesheets/css_application.css +11 -0
  14. data/test/dummy/app/assets/stylesheets/css_erb_handler.css.erb +3 -0
  15. data/test/dummy/app/assets/stylesheets/css_sass_erb_handler.sass.erb +2 -0
  16. data/test/dummy/app/assets/stylesheets/css_scss_erb_handler.scss.erb +3 -0
  17. data/test/dummy/app/assets/stylesheets/erb_render_with_context.css.erb +1804 -0
  18. data/test/dummy/app/assets/stylesheets/globbed/globbed.scss +3 -0
  19. data/test/dummy/app/assets/stylesheets/globbed/nested/nested_glob.scss +3 -0
  20. data/test/dummy/app/assets/stylesheets/imports_test.scss +19 -0
  21. data/test/dummy/app/assets/stylesheets/partials/_css_sass_import.sass +5 -0
  22. data/test/dummy/app/assets/stylesheets/partials/_sass_import.sass +2 -0
  23. data/test/dummy/app/assets/stylesheets/partials/_scss_import.scss +9 -0
  24. data/test/dummy/app/assets/stylesheets/partials/_without_css_ext.scss +3 -0
  25. data/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_sass.sass +2 -0
  26. data/test/dummy/app/assets/stylesheets/partials/subfolder/_relative_scss.scss +3 -0
  27. data/test/dummy/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.scss +3 -0
  28. data/test/dummy/app/assets/stylesheets/sass_erb_handler.sass.erb +2 -0
  29. data/test/dummy/app/assets/stylesheets/scss_erb_handler.scss.erb +3 -0
  30. data/test/dummy/app/assets/stylesheets/subfolder/_defaults.scss +3 -0
  31. data/test/dummy/app/assets/stylesheets/subfolder/another_plain.css +3 -0
  32. data/test/dummy/app/assets/stylesheets/subfolder/plain.css +3 -0
  33. data/test/dummy/app/assets/stylesheets/subfolder/second_level.scss +2 -0
  34. data/test/sassc_rails_test.rb +150 -2
  35. data/test/test_helper.rb +3 -0
  36. metadata +79 -7
  37. data/lib/sassc/rails/logger.rb +0 -21
  38. data/test/dummy/rails_app.rb +0 -16
@@ -0,0 +1,3 @@
1
+ .globbed {
2
+ color: green;
3
+ }
@@ -0,0 +1,3 @@
1
+ .nested-glob {
2
+ color: blue;
3
+ }
@@ -0,0 +1,19 @@
1
+ @import "partials/css_sass_import";
2
+ @import "partials/sass_import";
3
+ @import "partials/scss_import";
4
+ // //@import "globbed/**/*";
5
+ @import "subfolder/plain";
6
+ @import "subfolder/second_level";
7
+ @import "partials/without_css_ext";
8
+ @import "css_erb_handler";
9
+ @import "scss_erb_handler";
10
+ @import "sass_erb_handler";
11
+ @import "css_scss_erb_handler";
12
+ @import "css_sass_erb_handler";
13
+
14
+ .main {
15
+ color: yellow;
16
+ @include background-from-partial(red);
17
+ }
18
+
19
+ @include without-css-ext;
@@ -0,0 +1,5 @@
1
+ .partial-css-sass
2
+ color: green
3
+
4
+ @import "top_level_partial"
5
+ @import "subfolder/relative_scss"
@@ -0,0 +1,2 @@
1
+ .partial-sass
2
+ color: green
@@ -0,0 +1,9 @@
1
+ .partial-scss {
2
+ color: blue; }
3
+
4
+ @mixin background-from-partial($color) {
5
+ background-color: $color
6
+ }
7
+
8
+ @import "subfolder/relative_sass";
9
+ @import "subfolder/relative_not_a_partial";
@@ -0,0 +1,3 @@
1
+ @mixin without-css-ext {
2
+ .without-css-ext { should: work; }
3
+ }
@@ -0,0 +1,2 @@
1
+ .sub-folder-relative-sass
2
+ width: 50px
@@ -0,0 +1,3 @@
1
+ .sub-folder-relative-scss {
2
+ width: 50px * 5;
3
+ }
@@ -0,0 +1,3 @@
1
+ .not-a-partial {
2
+ border: 1px solid blue;
3
+ }
@@ -0,0 +1,2 @@
1
+ .sass-erb-handler
2
+ margin: <%= 0 %>
@@ -0,0 +1,3 @@
1
+ .scss-erb-handler {
2
+ margin: <%= 0 %>;
3
+ }
@@ -0,0 +1,3 @@
1
+ .default-old-css {
2
+ margin: 0px;
3
+ }
@@ -0,0 +1,3 @@
1
+ .another-plain-old-css {
2
+ font-style: italic;
3
+ }
@@ -0,0 +1,3 @@
1
+ .plain-old-css {
2
+ font-style: italic;
3
+ }
@@ -0,0 +1,2 @@
1
+ @import "another_plain"; /* tests whether relative lookups of non-sass files works. */
2
+ @import "defaults"; /* tests wheter relative lookups partials in the same directory. */
@@ -8,19 +8,42 @@ class SassRailsTest < MiniTest::Test
8
8
  @app.config.active_support.deprecation = :log
9
9
  @app.config.eager_load = false
10
10
  @app.config.root = File.join(File.dirname(__FILE__), "dummy")
11
+ @app.config.log_level = :debug
12
+
13
+ # reset config back to default
14
+ @app.config.sass = ActiveSupport::OrderedOptions.new
15
+ @app.config.sass.preferred_syntax = :scss
16
+ @app.config.sass.load_paths = []
17
+
11
18
  Rails.backtrace_cleaner.remove_silencers!
12
- @app.initialize!
13
19
  end
14
20
 
15
21
  def teardown
16
- FileUtils.remove_dir "#{Rails.root}/tmp"
22
+ directory = "#{Rails.root}/tmp"
23
+ FileUtils.remove_dir(directory) if File.directory?(directory)
17
24
  end
18
25
 
19
26
  def render_asset(asset)
20
27
  app.assets[asset].to_s
21
28
  end
22
29
 
30
+ def initialize!
31
+ @app.initialize!
32
+ end
33
+
34
+ def initialize_dev!
35
+ Rails.env = "development"
36
+ @app.initialize!
37
+ end
38
+
39
+ def initialize_prod!
40
+ Rails.env = "production"
41
+ @app.initialize!
42
+ end
43
+
23
44
  def test_setup_works
45
+ initialize!
46
+
24
47
  asset = render_asset("application.scss")
25
48
 
26
49
  assert_equal <<-CSS, asset
@@ -30,6 +53,8 @@ class SassRailsTest < MiniTest::Test
30
53
  end
31
54
 
32
55
  def test_raises_sassc_syntax_error
56
+ initialize!
57
+
33
58
  assert_raises(SassC::SyntaxError) do
34
59
  render_asset("syntax_error.scss")
35
60
  end
@@ -38,6 +63,8 @@ class SassRailsTest < MiniTest::Test
38
63
  def test_all_sass_asset_paths_work
39
64
  skip
40
65
 
66
+ initialize!
67
+
41
68
  css_output = render_asset("helpers_test.scss")
42
69
 
43
70
  assert_match %r{asset-path:\s*"/assets/rails.png"}, css_output, 'asset-path:\s*"/assets/rails.png"'
@@ -47,6 +74,8 @@ class SassRailsTest < MiniTest::Test
47
74
  end
48
75
 
49
76
  def test_sass_asset_paths_work
77
+ initialize!
78
+
50
79
  css_output = render_asset("helpers_test.scss")
51
80
 
52
81
  assert_match %r{video-path:\s*"/videos/rails.mp4"}, css_output, 'video-path:\s*"/videos/rails.mp4"'
@@ -74,4 +103,123 @@ class SassRailsTest < MiniTest::Test
74
103
  "SUVORK5CYII%3D"
75
104
  assert_equal asset_data_url_expected, asset_data_url_match
76
105
  end
106
+
107
+ def test_sass_imports_work_correctly
108
+ initialize!
109
+
110
+ css_output = render_asset("imports_test.scss")
111
+ assert_match /main/, css_output
112
+ assert_match /top-level/, css_output
113
+ assert_match /partial-sass/, css_output
114
+ assert_match /partial-scss/, css_output
115
+ assert_match /sub-folder-relative-sass/, css_output
116
+ assert_match /sub-folder-relative-scss/, css_output
117
+ assert_match /not-a-partial/, css_output
118
+ assert_match /plain-old-css/, css_output
119
+ assert_match /another-plain-old-css/, css_output
120
+ assert_match /without-css-ext/, css_output
121
+ assert_match /css-erb-handler/, css_output
122
+ assert_match /scss-erb-handler/, css_output
123
+ assert_match /sass-erb-handler/, css_output
124
+
125
+ # do these two actually test anything?
126
+ # should the extension be changed?
127
+ assert_match /css-sass-erb-handler/, css_output
128
+ assert_match /css-scss-erb-handler/, css_output
129
+
130
+ assert_match /default-old-css/, css_output
131
+
132
+ # skip for now
133
+ # assert_match /globbed/, css_output
134
+ # assert_match /nested-glob/, css_output
135
+ end
136
+
137
+ def test_style_config_item_is_defaulted_to_expanded_in_development_mode
138
+ initialize_dev!
139
+ assert_equal :expanded, Rails.application.config.sass.style
140
+ end
141
+
142
+ def test_style_config_item_is_honored_in_development_mode
143
+ @app.config.sass.style = :nested
144
+ initialize_dev!
145
+ assert_equal :nested, Rails.application.config.sass.style
146
+ end
147
+
148
+ def test_style_config_item_is_not_honored_if_environment_is_not_development
149
+ initialize_prod!
150
+ assert_equal :compressed, Rails.application.config.sass.style
151
+ end
152
+
153
+ def test_context_is_being_passed_to_erb_render
154
+ initialize!
155
+
156
+ css_output = render_asset("erb_render_with_context.css.erb")
157
+ assert_match /@font-face/, css_output
158
+ end
159
+
160
+ #test 'sprockets require works correctly' do
161
+ # skip
162
+
163
+ # within_rails_app('scss_project') do |app_root|
164
+ # css_output = asset_output('css_application.css')
165
+ # assert_match /globbed/, css_output
166
+
167
+ # if File.exists?("#{app_root}/log/development.log")
168
+ # log_file = "#{app_root}/log/development.log"
169
+ # elsif File.exists?("#{app_root}/log/test.log")
170
+ # log_file = "#{app_root}/log/test.log"
171
+ # else
172
+ # flunk "log file was not created"
173
+ # end
174
+
175
+ # log_output = File.open(log_file).read
176
+ # refute_match /Warning/, log_output
177
+ # end
178
+ #end
179
+
180
+ #test 'sprockets directives are ignored within an import' do
181
+ # skip
182
+
183
+ # css_output = sprockets_render('scss_project', 'import_css_application.css')
184
+ # assert_match /\.css-application/, css_output
185
+ # assert_match /\.import-css-application/, css_output
186
+ #end
187
+
188
+ #test 'globbed imports work when new file is added' do
189
+ # skip
190
+
191
+ # project = 'scss_project'
192
+ # filename = 'application.scss'
193
+
194
+ # within_rails_app(project) do |tmpdir|
195
+ # asset_output(filename)
196
+
197
+ # new_file = File.join(tmpdir, 'app', 'assets', 'stylesheets', 'globbed', 'new.scss')
198
+ # File.open(new_file, 'w') do |file|
199
+ # file.puts '.new-file-test { color: #000; }'
200
+ # end
201
+
202
+ # css_output = asset_output(filename)
203
+ # assert_match /new-file-test/, css_output
204
+ # end
205
+ #end
206
+
207
+ #test 'globbed imports work when globbed file is changed' do
208
+ # skip
209
+
210
+ # project = 'scss_project'
211
+ # filename = 'application.scss'
212
+
213
+ # within_rails_app(project) do |tmpdir|
214
+ # asset_output(filename)
215
+
216
+ # new_file = File.join(tmpdir, 'app', 'assets', 'stylesheets', 'globbed', 'globbed.scss')
217
+ # File.open(new_file, 'w') do |file|
218
+ # file.puts '.changed-file-test { color: #000; }'
219
+ # end
220
+
221
+ # css_output = asset_output(filename)
222
+ # assert_match /changed-file-test/, css_output
223
+ # end
224
+ #end
77
225
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
1
3
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
4
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
5
 
@@ -6,6 +8,7 @@ require "fileutils"
6
8
  require 'rails'
7
9
  require 'bundler/setup'
8
10
  require "minitest/autorun"
11
+ require 'mocha/mini_test'
9
12
 
10
13
  Bundler.require
11
14
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2015-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mocha
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: sass
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +108,34 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: tilt
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: sassc
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - '='
102
130
  - !ruby/object:Gem::Version
103
- version: 0.0.7
131
+ version: 1.0.0
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - '='
109
137
  - !ruby/object:Gem::Version
110
- version: 0.0.7
138
+ version: 1.0.0
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: railties
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -144,6 +172,7 @@ extensions: []
144
172
  extra_rdoc_files: []
145
173
  files:
146
174
  - ".gitignore"
175
+ - ".travis.yml"
147
176
  - Gemfile
148
177
  - LICENSE.txt
149
178
  - README.md
@@ -152,18 +181,39 @@ files:
152
181
  - lib/sassc/rails.rb
153
182
  - lib/sassc/rails/functions.rb
154
183
  - lib/sassc/rails/importer.rb
155
- - lib/sassc/rails/logger.rb
156
184
  - lib/sassc/rails/railtie.rb
157
185
  - lib/sassc/rails/template.rb
158
186
  - lib/sassc/rails/version.rb
159
187
  - sassc-rails.gemspec
188
+ - test/dummy/app/assets/fonts/fake-font.ttf
160
189
  - test/dummy/app/assets/images/.keep
161
190
  - test/dummy/app/assets/images/1x1.png
162
191
  - test/dummy/app/assets/images/rails.png
192
+ - test/dummy/app/assets/stylesheets/_top_level_partial.scss
163
193
  - test/dummy/app/assets/stylesheets/application.scss
194
+ - test/dummy/app/assets/stylesheets/css_application.css
195
+ - test/dummy/app/assets/stylesheets/css_erb_handler.css.erb
196
+ - test/dummy/app/assets/stylesheets/css_sass_erb_handler.sass.erb
197
+ - test/dummy/app/assets/stylesheets/css_scss_erb_handler.scss.erb
198
+ - test/dummy/app/assets/stylesheets/erb_render_with_context.css.erb
199
+ - test/dummy/app/assets/stylesheets/globbed/globbed.scss
200
+ - test/dummy/app/assets/stylesheets/globbed/nested/nested_glob.scss
164
201
  - test/dummy/app/assets/stylesheets/helpers_test.scss
202
+ - test/dummy/app/assets/stylesheets/imports_test.scss
203
+ - test/dummy/app/assets/stylesheets/partials/_css_sass_import.sass
204
+ - test/dummy/app/assets/stylesheets/partials/_sass_import.sass
205
+ - test/dummy/app/assets/stylesheets/partials/_scss_import.scss
206
+ - test/dummy/app/assets/stylesheets/partials/_without_css_ext.scss
207
+ - test/dummy/app/assets/stylesheets/partials/subfolder/_relative_sass.sass
208
+ - test/dummy/app/assets/stylesheets/partials/subfolder/_relative_scss.scss
209
+ - test/dummy/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.scss
210
+ - test/dummy/app/assets/stylesheets/sass_erb_handler.sass.erb
211
+ - test/dummy/app/assets/stylesheets/scss_erb_handler.scss.erb
212
+ - test/dummy/app/assets/stylesheets/subfolder/_defaults.scss
213
+ - test/dummy/app/assets/stylesheets/subfolder/another_plain.css
214
+ - test/dummy/app/assets/stylesheets/subfolder/plain.css
215
+ - test/dummy/app/assets/stylesheets/subfolder/second_level.scss
165
216
  - test/dummy/app/assets/stylesheets/syntax_error.scss
166
- - test/dummy/rails_app.rb
167
217
  - test/sassc_rails_test.rb
168
218
  - test/smoke_test.rb
169
219
  - test/test_helper.rb
@@ -404,13 +454,35 @@ signing_key:
404
454
  specification_version: 4
405
455
  summary: Integrate SassC-Ruby into Rails.
406
456
  test_files:
457
+ - test/dummy/app/assets/fonts/fake-font.ttf
407
458
  - test/dummy/app/assets/images/.keep
408
459
  - test/dummy/app/assets/images/1x1.png
409
460
  - test/dummy/app/assets/images/rails.png
461
+ - test/dummy/app/assets/stylesheets/_top_level_partial.scss
410
462
  - test/dummy/app/assets/stylesheets/application.scss
463
+ - test/dummy/app/assets/stylesheets/css_application.css
464
+ - test/dummy/app/assets/stylesheets/css_erb_handler.css.erb
465
+ - test/dummy/app/assets/stylesheets/css_sass_erb_handler.sass.erb
466
+ - test/dummy/app/assets/stylesheets/css_scss_erb_handler.scss.erb
467
+ - test/dummy/app/assets/stylesheets/erb_render_with_context.css.erb
468
+ - test/dummy/app/assets/stylesheets/globbed/globbed.scss
469
+ - test/dummy/app/assets/stylesheets/globbed/nested/nested_glob.scss
411
470
  - test/dummy/app/assets/stylesheets/helpers_test.scss
471
+ - test/dummy/app/assets/stylesheets/imports_test.scss
472
+ - test/dummy/app/assets/stylesheets/partials/_css_sass_import.sass
473
+ - test/dummy/app/assets/stylesheets/partials/_sass_import.sass
474
+ - test/dummy/app/assets/stylesheets/partials/_scss_import.scss
475
+ - test/dummy/app/assets/stylesheets/partials/_without_css_ext.scss
476
+ - test/dummy/app/assets/stylesheets/partials/subfolder/_relative_sass.sass
477
+ - test/dummy/app/assets/stylesheets/partials/subfolder/_relative_scss.scss
478
+ - test/dummy/app/assets/stylesheets/partials/subfolder/relative_not_a_partial.scss
479
+ - test/dummy/app/assets/stylesheets/sass_erb_handler.sass.erb
480
+ - test/dummy/app/assets/stylesheets/scss_erb_handler.scss.erb
481
+ - test/dummy/app/assets/stylesheets/subfolder/_defaults.scss
482
+ - test/dummy/app/assets/stylesheets/subfolder/another_plain.css
483
+ - test/dummy/app/assets/stylesheets/subfolder/plain.css
484
+ - test/dummy/app/assets/stylesheets/subfolder/second_level.scss
412
485
  - test/dummy/app/assets/stylesheets/syntax_error.scss
413
- - test/dummy/rails_app.rb
414
486
  - test/sassc_rails_test.rb
415
487
  - test/smoke_test.rb
416
488
  - test/test_helper.rb