sass-rails 4.0.0.rc1 → 4.0.0.rc2
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 +7 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +25 -15
- data/Gemfile +0 -2
- data/{README.markdown → README.md} +26 -19
- data/Rakefile +1 -1
- data/lib/sass/rails.rb +1 -2
- data/lib/sass/rails/importer.rb +45 -15
- data/lib/sass/rails/railtie.rb +3 -9
- data/lib/sass/rails/version.rb +1 -1
- data/sass-rails.gemspec +5 -6
- data/sass-rails.gemspec.erb +3 -4
- data/test/fixtures/alternate_config_project/Gemfile +2 -2
- data/test/fixtures/alternate_config_project/config/environments/development.rb +0 -1
- data/test/fixtures/alternate_config_project/config/environments/production.rb +2 -1
- data/test/fixtures/alternate_config_project/config/environments/test.rb +0 -4
- data/test/fixtures/engine_project/.gitignore +3 -1
- data/test/fixtures/engine_project/Gemfile +11 -2
- data/test/fixtures/engine_project/MIT-LICENSE +20 -0
- data/test/fixtures/engine_project/Rakefile +5 -10
- data/test/fixtures/engine_project/app/assets/images/engine_project/{.gitkeep → .keep} +0 -0
- data/test/fixtures/engine_project/app/assets/javascripts/engine_project/application.js +11 -4
- data/test/fixtures/engine_project/app/assets/stylesheets/engine_project/application.css +11 -5
- data/test/fixtures/engine_project/app/views/layouts/engine_project/application.html.erb +1 -1
- data/test/fixtures/engine_project/engine_project.gemspec +20 -5
- data/test/fixtures/engine_project/lib/engine_project/engine.rb +1 -1
- data/test/fixtures/engine_project/script/rails +5 -3
- data/test/fixtures/engine_project/test/dummy/README.rdoc +28 -0
- data/test/fixtures/engine_project/test/dummy/Rakefile +0 -1
- data/test/fixtures/engine_project/test/dummy/app/assets/javascripts/application.js +11 -4
- data/test/fixtures/engine_project/test/dummy/app/assets/stylesheets/application.css +11 -5
- data/test/fixtures/engine_project/test/dummy/app/controllers/application_controller.rb +3 -1
- data/test/fixtures/engine_project/test/dummy/app/{mailers/.gitkeep → controllers/concerns/.keep} +0 -0
- data/test/fixtures/engine_project/test/dummy/app/{models/.gitkeep → mailers/.keep} +0 -0
- data/test/fixtures/engine_project/test/dummy/{lib/assets/.gitkeep → app/models/.keep} +0 -0
- data/test/fixtures/engine_project/test/dummy/{log/.gitkeep → app/models/concerns/.keep} +0 -0
- data/test/fixtures/engine_project/test/dummy/app/views/layouts/application.html.erb +2 -2
- data/test/fixtures/engine_project/test/dummy/bin/bundle +3 -0
- data/test/fixtures/engine_project/test/dummy/bin/rails +4 -0
- data/test/fixtures/engine_project/test/dummy/bin/rake +4 -0
- data/test/fixtures/engine_project/test/dummy/config/application.rb +1 -20
- data/test/fixtures/engine_project/test/dummy/config/boot.rb +0 -1
- data/test/fixtures/engine_project/test/dummy/config/environment.rb +2 -2
- data/test/fixtures/engine_project/test/dummy/config/environments/development.rb +12 -9
- data/test/fixtures/engine_project/test/dummy/config/environments/production.rb +49 -20
- data/test/fixtures/engine_project/test/dummy/config/environments/test.rb +14 -14
- data/test/fixtures/engine_project/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/fixtures/engine_project/test/dummy/config/initializers/inflections.rb +9 -3
- data/test/fixtures/engine_project/test/dummy/config/initializers/secret_token.rb +6 -1
- data/test/fixtures/engine_project/test/dummy/config/initializers/session_store.rb +1 -6
- data/test/fixtures/engine_project/test/dummy/config/initializers/wrap_parameters.rb +8 -6
- data/test/fixtures/engine_project/test/dummy/config/locales/en.yml +20 -2
- data/test/fixtures/engine_project/test/dummy/lib/assets/.keep +0 -0
- data/test/fixtures/engine_project/test/dummy/log/.keep +0 -0
- data/test/fixtures/engine_project/test/dummy/public/404.html +2 -1
- data/test/fixtures/engine_project/test/dummy/public/422.html +1 -1
- data/test/fixtures/engine_project/test/dummy/public/500.html +2 -2
- data/test/fixtures/sass_project/Gemfile +3 -3
- data/test/fixtures/sass_project/config/environments/development.rb +0 -3
- data/test/fixtures/sass_project/config/environments/production.rb +0 -3
- data/test/fixtures/scss_project/Gemfile +3 -3
- data/test/fixtures/scss_project/app/assets/stylesheets/application.css.scss +5 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/css_erb_handler.css.erb +3 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/css_sass_erb_handler.css.sass.erb +2 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/css_scss_erb_handler.css.scss.erb +3 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/sass_erb_handler.sass.erb +2 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/scss_erb_handler.scss.erb +3 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/_defaults.css.scss +3 -0
- data/test/fixtures/scss_project/app/assets/stylesheets/subfolder/second_level.css.scss +2 -1
- data/test/fixtures/scss_project/config/environments/development.rb +0 -3
- data/test/fixtures/scss_project/config/environments/production.rb +2 -3
- data/test/fixtures/scss_project/config/environments/test.rb +2 -0
- data/test/sass_rails_generators_test.rb +62 -0
- data/test/sass_rails_logger_test.rb +1 -1
- data/test/sass_rails_test.rb +61 -121
- data/test/test_helper.rb +2 -5
- metadata +54 -58
- data/lib/sass/rails/compressor.rb +0 -23
- data/test/fixtures/engine_project/db/seeds.rb +0 -7
- data/test/fixtures/engine_project/test/dummy/db/seeds.rb +0 -7
- data/test/fixtures/engine_project/test/dummy/script/rails +0 -6
@@ -1,10 +1,16 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
# Add new inflection rules using the following format
|
4
|
-
#
|
5
|
-
#
|
3
|
+
# Add new inflection rules using the following format. Inflections
|
4
|
+
# are locale specific, and you may define rules for as many different
|
5
|
+
# locales as you wish. All of these examples are active by default:
|
6
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
6
7
|
# inflect.plural /^(ox)$/i, '\1en'
|
7
8
|
# inflect.singular /^(ox)en/i, '\1'
|
8
9
|
# inflect.irregular 'person', 'people'
|
9
10
|
# inflect.uncountable %w( fish sheep )
|
10
11
|
# end
|
12
|
+
|
13
|
+
# These inflection rules are supported but not enabled by default:
|
14
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
15
|
+
# inflect.acronym 'RESTful'
|
16
|
+
# end
|
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
# Your secret key for verifying the integrity of signed cookies.
|
4
4
|
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
|
5
6
|
# Make sure the secret is at least 30 characters and all random,
|
6
7
|
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
|
8
|
+
# You can use `rake secret` to generate a secure secret key.
|
9
|
+
|
10
|
+
# Make sure your secret_key_base is kept private
|
11
|
+
# if you're sharing your code publicly.
|
12
|
+
Dummy::Application.config.secret_key_base = '868d5f3233e4ffc2280b4ce3ba53cbe670ecefcca857cbf731795b8f2987f97d04b5175e2d014dd0d711203d2a45d1a52ed66bda51892f08eb828b0136a36437'
|
@@ -1,8 +1,3 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
Dummy::Application.config.session_store :
|
4
|
-
|
5
|
-
# Use the database for sessions instead of the cookie-based default,
|
6
|
-
# which shouldn't be used to store highly confidential information
|
7
|
-
# (create the session table with "rails generate session_migration")
|
8
|
-
# Dummy::Application.config.session_store :active_record_store
|
3
|
+
Dummy::Application.config.session_store :encrypted_cookie_store, key: '_dummy_session'
|
@@ -1,12 +1,14 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
|
-
|
2
|
+
|
3
3
|
# This file contains settings for ActionController::ParamsWrapper which
|
4
4
|
# is enabled by default.
|
5
5
|
|
6
6
|
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
7
|
-
|
8
|
-
|
9
|
-
# Disable root element in JSON by default.
|
10
|
-
if defined?(ActiveRecord)
|
11
|
-
ActiveRecord::Base.include_root_in_json = false
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
|
12
9
|
end
|
10
|
+
|
11
|
+
# To enable root element in JSON for ActiveRecord objects.
|
12
|
+
# ActiveSupport.on_load(:active_record) do
|
13
|
+
# self.include_root_in_json = true
|
14
|
+
# end
|
@@ -1,5 +1,23 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t 'hello'
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t('hello') %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# To learn more, please read the Rails Internationalization guide
|
20
|
+
# available at http://guides.rubyonrails.org/i18n.html.
|
3
21
|
|
4
22
|
en:
|
5
23
|
hello: "Hello world"
|
File without changes
|
File without changes
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
-
<style
|
5
|
+
<style>
|
6
6
|
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
7
|
div.dialog {
|
8
8
|
width: 25em;
|
@@ -22,5 +22,6 @@
|
|
22
22
|
<h1>The page you were looking for doesn't exist.</h1>
|
23
23
|
<p>You may have mistyped the address or the page may have moved.</p>
|
24
24
|
</div>
|
25
|
+
<p>If you are the application owner check the logs for more information.</p>
|
25
26
|
</body>
|
26
27
|
</html>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>We're sorry, but something went wrong (500)</title>
|
5
|
-
<style
|
5
|
+
<style>
|
6
6
|
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
7
7
|
div.dialog {
|
8
8
|
width: 25em;
|
@@ -20,7 +20,7 @@
|
|
20
20
|
<!-- This file lives in public/500.html -->
|
21
21
|
<div class="dialog">
|
22
22
|
<h1>We're sorry, but something went wrong.</h1>
|
23
|
-
<p>We've been notified about this issue and we'll take a look at it shortly.</p>
|
24
23
|
</div>
|
24
|
+
<p>If you are the application owner check the logs for more information.</p>
|
25
25
|
</body>
|
26
26
|
</html>
|
@@ -1,7 +1,7 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rails',
|
3
|
+
gem 'rails', '>= 4.0.0.beta', '< 5.0'
|
4
4
|
gem 'sqlite3'
|
5
5
|
|
6
6
|
# Asset template engines
|
7
|
-
gem 'sass-rails', :
|
7
|
+
gem 'sass-rails', path: File.expand_path('../../../..', __FILE__)
|
@@ -11,9 +11,6 @@ ScssProject::Application.configure do
|
|
11
11
|
# Disable Rails's static asset server (Apache or nginx will already do this)
|
12
12
|
config.serve_static_assets = false
|
13
13
|
|
14
|
-
# Compress JavaScripts and CSS
|
15
|
-
config.assets.compress = true
|
16
|
-
|
17
14
|
# Specify the default JavaScript compressor
|
18
15
|
config.assets.js_compressor = :uglifier
|
19
16
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rails',
|
3
|
+
gem 'rails', '>= 4.0.0.beta', '< 5.0'
|
4
4
|
gem 'sqlite3'
|
5
5
|
|
6
6
|
# Asset template engines
|
7
|
-
gem 'sass-rails', :
|
7
|
+
gem 'sass-rails', path: File.expand_path('../../../..', __FILE__)
|
@@ -4,6 +4,11 @@
|
|
4
4
|
@import "subfolder/plain";
|
5
5
|
@import "subfolder/second_level";
|
6
6
|
@import "partials/without_css_ext";
|
7
|
+
@import "css_erb_handler";
|
8
|
+
@import "scss_erb_handler";
|
9
|
+
@import "sass_erb_handler";
|
10
|
+
@import "css_scss_erb_handler";
|
11
|
+
@import "css_sass_erb_handler";
|
7
12
|
|
8
13
|
.main {
|
9
14
|
color: yellow;
|
@@ -1 +1,2 @@
|
|
1
|
-
@import "another_plain"; /* tests whether relative lookups of non-sass files works. */
|
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. */
|
@@ -4,6 +4,8 @@ ScssProject::Application.configure do
|
|
4
4
|
# Code is not reloaded between requests
|
5
5
|
config.cache_classes = true
|
6
6
|
|
7
|
+
config.eager_load = true
|
8
|
+
|
7
9
|
# Full error reports are disabled and caching is turned on
|
8
10
|
config.consider_all_requests_local = false
|
9
11
|
config.action_controller.perform_caching = true
|
@@ -11,9 +13,6 @@ ScssProject::Application.configure do
|
|
11
13
|
# Disable Rails's static asset server (Apache or nginx will already do this)
|
12
14
|
config.serve_static_assets = false
|
13
15
|
|
14
|
-
# Compress JavaScripts and CSS
|
15
|
-
config.assets.compress = true
|
16
|
-
|
17
16
|
# Specify the default JavaScript compressor
|
18
17
|
config.assets.js_compressor = :uglifier
|
19
18
|
|
@@ -7,6 +7,8 @@ ScssProject::Application.configure do
|
|
7
7
|
# and recreated between test runs. Don't rely on the data there!
|
8
8
|
config.cache_classes = true
|
9
9
|
|
10
|
+
config.eager_load = false
|
11
|
+
|
10
12
|
# Configure static asset server for tests with Cache-Control for performance
|
11
13
|
config.serve_static_assets = true
|
12
14
|
config.static_cache_control = "public, max-age=3600"
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ScaffoldGeneratorTest < Sass::Rails::TestCase
|
4
|
+
test "scss files are generated during scaffold generation of scss projects" do
|
5
|
+
within_rails_app "scss_project" do
|
6
|
+
generate_scaffold
|
7
|
+
assert_file_exists "app/assets/stylesheets/foos.css.scss"
|
8
|
+
assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
|
9
|
+
assert_not_output /conflict/
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
test "sass files are generated during scaffold generation of sass projects" do
|
14
|
+
within_rails_app "sass_project" do
|
15
|
+
generate_scaffold
|
16
|
+
assert_file_exists "app/assets/stylesheets/foos.css.sass"
|
17
|
+
assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
|
18
|
+
assert_not_output /conflict/
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
test "scss files are generated during scaffold generation of a engine project, if is called with --stylesheet-engine=scss" do
|
23
|
+
within_rails_app "engine_project" do
|
24
|
+
generate_scaffold "--stylesheet-engine=scss"
|
25
|
+
assert_file_exists "app/assets/stylesheets/engine_project/foos.css.scss"
|
26
|
+
assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
|
27
|
+
assert_not_output /conflict/
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
test "sass files are generated during scaffold generation of a engine project, if is called with --stylesheet-engine=sass" do
|
32
|
+
within_rails_app "engine_project" do
|
33
|
+
generate_scaffold "--stylesheet-engine=sass"
|
34
|
+
assert_file_exists "app/assets/stylesheets/engine_project/foos.css.sass"
|
35
|
+
assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
|
36
|
+
assert_not_output /conflict/
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# DISABLED because we've removed the feature for now.
|
41
|
+
# test "scss template has correct dasherized css class for namespaced controllers" do
|
42
|
+
# within_rails_app "scss_project" do
|
43
|
+
# runcmd "rails generate controller foo/bar"
|
44
|
+
# assert_file_exists "app/assets/stylesheets/foo/bar.css.scss"
|
45
|
+
# assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.scss")
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
#
|
49
|
+
# test "sass template has correct dasherized css class for namespaced controllers" do
|
50
|
+
# within_rails_app "sass_project" do
|
51
|
+
# runcmd "rails generate controller foo/bar"
|
52
|
+
# assert_file_exists "app/assets/stylesheets/foo/bar.css.sass"
|
53
|
+
# assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.sass")
|
54
|
+
# end
|
55
|
+
# end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def generate_scaffold(args = nil)
|
60
|
+
runcmd "bundle exec rails generate scaffold foo #{args}"
|
61
|
+
end
|
62
|
+
end
|
@@ -12,7 +12,7 @@ class SassRailsLoggerTest < Sass::Rails::TestCase
|
|
12
12
|
within_rails_app "scss_project" do |app_root|
|
13
13
|
[:debug, :warn, :info, :error, :trace].each do |level|
|
14
14
|
message = "[#{level}]: sass message"
|
15
|
-
runcmd %{ruby script/rails runner "Sass::logger.log_level = :#{level}; Sass::logger.log(:#{level}, %Q|#{message}|)"}
|
15
|
+
runcmd %{ruby script/rails runner "Sass::logger.log_level = :#{level}; Sass::logger.log(:#{level}, %Q|#{message}|)"}, Dir.pwd, true, 'Gemfile', { 'RAILS_ENV' => 'development' }
|
16
16
|
|
17
17
|
assert File.exists?("#{app_root}/log/development.log"), "log file was not created"
|
18
18
|
|
data/test/sass_rails_test.rb
CHANGED
@@ -1,128 +1,74 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class SassRailsTest < Sass::Rails::TestCase
|
4
|
-
test
|
4
|
+
test 'classes are loaded' do
|
5
5
|
assert_kind_of Module, Sass::Rails
|
6
|
-
assert_kind_of Class, Sass::Rails::CssCompressor
|
7
6
|
assert_kind_of Class, Sass::Rails::Railtie
|
8
7
|
end
|
9
8
|
|
10
|
-
test
|
11
|
-
within_rails_app
|
12
|
-
runcmd "ruby script/rails runner 'puts Rails.application.config.sass.style'", Dir.pwd, true,
|
13
|
-
assert_output
|
9
|
+
test 'style config item is honored in development mode' do
|
10
|
+
within_rails_app 'alternate_config_project' do
|
11
|
+
runcmd "ruby script/rails runner 'puts Rails.application.config.sass.style'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'development'}
|
12
|
+
assert_output /compact/
|
14
13
|
end
|
15
14
|
end
|
16
15
|
|
17
|
-
test
|
18
|
-
within_rails_app
|
19
|
-
runcmd "ruby script/rails runner '
|
20
|
-
|
16
|
+
test 'style config item is not honored if environment is not development' do
|
17
|
+
within_rails_app 'alternate_config_project' do
|
18
|
+
runcmd "ruby script/rails runner 'p Rails.application.config.sass.style'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'production'}
|
19
|
+
assert_equal 'nil', $last_ouput.chomp
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
div {
|
29
|
-
color: red;
|
30
|
-
}
|
31
|
-
span {
|
32
|
-
color: blue;
|
33
|
-
}
|
34
|
-
CSS
|
35
|
-
END_OF_COMMAND
|
36
|
-
within_rails_app "alternate_config_project" do
|
37
|
-
runcmd "ruby script/rails runner '#{command}'", Dir.pwd, true, "Gemfile", {"RAILS_ENV" => "development"}
|
38
|
-
assert_line_count(3)
|
23
|
+
test 'css_compressor config item is not honored in development mode' do
|
24
|
+
within_rails_app 'alternate_config_project' do
|
25
|
+
runcmd "ruby script/rails runner 'p Rails.application.config.assets.css_compressor'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'development'}
|
26
|
+
assert_equal 'nil', $last_ouput.chomp
|
39
27
|
end
|
40
28
|
end
|
41
29
|
|
42
|
-
test
|
43
|
-
|
44
|
-
puts Rails.application.config.assets.css_compressor.
|
45
|
-
|
46
|
-
color: red;
|
47
|
-
}
|
48
|
-
span {
|
49
|
-
color: blue;
|
50
|
-
}
|
51
|
-
CSS
|
52
|
-
END_OF_COMMAND
|
53
|
-
within_rails_app "alternate_config_project" do
|
54
|
-
runcmd "ruby script/rails runner '#{command}'", Dir.pwd, true, "Gemfile", {"RAILS_ENV" => "test"}
|
55
|
-
assert_line_count(1)
|
30
|
+
test 'css_compressor config item is honored if environment is not development' do
|
31
|
+
within_rails_app 'alternate_config_project' do
|
32
|
+
runcmd "ruby script/rails runner 'puts Rails.application.config.assets.css_compressor'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'production'}
|
33
|
+
assert_output /yui/
|
56
34
|
end
|
57
35
|
end
|
58
36
|
|
59
|
-
test
|
60
|
-
within_rails_app
|
61
|
-
runcmd "ruby script/rails runner 'puts Rails.application.config.sass.style'", Dir.pwd, true,
|
62
|
-
assert_output
|
37
|
+
test 'sass uses expanded style by default in development mode' do
|
38
|
+
within_rails_app 'scss_project' do
|
39
|
+
runcmd "ruby script/rails runner 'puts Rails.application.config.sass.style'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'development'}
|
40
|
+
assert_output /expanded/
|
63
41
|
end
|
64
42
|
end
|
65
43
|
|
66
|
-
test
|
67
|
-
within_rails_app
|
68
|
-
|
69
|
-
|
70
|
-
assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
|
71
|
-
assert_not_output(/conflict/)
|
44
|
+
test 'sass not defines compressor in development mode' do
|
45
|
+
within_rails_app 'scss_project' do
|
46
|
+
runcmd "ruby script/rails runner 'p Rails.application.config.assets.css_compressor'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'development'}
|
47
|
+
assert_equal 'nil', $last_ouput.chomp
|
72
48
|
end
|
73
49
|
end
|
74
50
|
|
75
|
-
test
|
76
|
-
within_rails_app
|
77
|
-
|
78
|
-
|
79
|
-
assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
|
80
|
-
assert_not_output(/conflict/)
|
51
|
+
test 'sass defines compressor by default in test mode' do
|
52
|
+
within_rails_app 'scss_project' do
|
53
|
+
runcmd "ruby script/rails runner 'puts Rails.application.config.assets.css_compressor'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'test'}
|
54
|
+
assert_equal 'sass', $last_ouput.chomp
|
81
55
|
end
|
82
56
|
end
|
83
57
|
|
84
|
-
test
|
85
|
-
within_rails_app
|
86
|
-
|
87
|
-
|
88
|
-
assert_file_exists "app/assets/stylesheets/scaffolds.css.scss"
|
89
|
-
assert_not_output(/conflict/)
|
58
|
+
test 'sass defines compressor by default in production mode' do
|
59
|
+
within_rails_app 'scss_project' do
|
60
|
+
runcmd "ruby script/rails runner 'puts Rails.application.config.assets.css_compressor'", Dir.pwd, true, 'Gemfile', {'RAILS_ENV' => 'production'}
|
61
|
+
assert_equal 'sass', $last_ouput.chomp
|
90
62
|
end
|
91
63
|
end
|
92
64
|
|
93
|
-
test
|
94
|
-
|
95
|
-
generate_scaffold "--stylesheet-engine=sass"
|
96
|
-
assert_file_exists "app/assets/stylesheets/engine_project/foos.css.sass"
|
97
|
-
assert_file_exists "app/assets/stylesheets/scaffolds.css.sass"
|
98
|
-
assert_not_output(/conflict/)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
# DISABLED because we've removed the feature for now.
|
103
|
-
# test "scss template has correct dasherized css class for namespaced controllers" do
|
104
|
-
# within_rails_app "scss_project" do
|
105
|
-
# runcmd "rails generate controller foo/bar"
|
106
|
-
# assert_file_exists "app/assets/stylesheets/foo/bar.css.scss"
|
107
|
-
# assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.scss")
|
108
|
-
# end
|
109
|
-
# end
|
110
|
-
#
|
111
|
-
# test "sass template has correct dasherized css class for namespaced controllers" do
|
112
|
-
# within_rails_app "sass_project" do
|
113
|
-
# runcmd "rails generate controller foo/bar"
|
114
|
-
# assert_file_exists "app/assets/stylesheets/foo/bar.css.sass"
|
115
|
-
# assert_match /\.foo-bar/, File.read("app/assets/stylesheets/foo/bar.css.sass")
|
116
|
-
# end
|
117
|
-
# end
|
118
|
-
#
|
119
|
-
test "sprockets require works correctly" do
|
120
|
-
css_output = sprockets_render("scss_project", "css_application.css")
|
65
|
+
test 'sprockets require works correctly' do
|
66
|
+
css_output = sprockets_render('scss_project', 'css_application.css')
|
121
67
|
assert_match /globbed/, css_output
|
122
68
|
end
|
123
69
|
|
124
|
-
test
|
125
|
-
css_output = sprockets_render(
|
70
|
+
test 'sass imports work correctly' do
|
71
|
+
css_output = sprockets_render('scss_project', 'application.css.scss')
|
126
72
|
assert_match /main/, css_output
|
127
73
|
assert_match /top-level/, css_output
|
128
74
|
assert_match /partial-sass/, css_output
|
@@ -135,42 +81,36 @@ END_OF_COMMAND
|
|
135
81
|
assert_match /plain-old-css/, css_output
|
136
82
|
assert_match /another-plain-old-css/, css_output
|
137
83
|
assert_match /without-css-ext/, css_output
|
84
|
+
assert_match /css-erb-handler/, css_output
|
85
|
+
assert_match /scss-erb-handler/, css_output
|
86
|
+
assert_match /sass-erb-handler/, css_output
|
87
|
+
assert_match /css-sass-erb-handler/, css_output
|
88
|
+
assert_match /css-scss-erb-handler/, css_output
|
89
|
+
assert_match /default-old-css/, css_output
|
138
90
|
end
|
139
91
|
|
140
|
-
test
|
141
|
-
css_output = sprockets_render(
|
142
|
-
assert_match %r{asset-path:\s*"/assets/rails.png"},
|
143
|
-
assert_match %r{asset-url:\s*url\(/assets/rails.png\)},
|
144
|
-
assert_match %r{image-path:\s*"/assets/rails.png"},
|
145
|
-
assert_match %r{image-url:\s*url\(/assets/rails.png\)},
|
146
|
-
assert_match %r{video-path:\s*"/
|
147
|
-
assert_match %r{video-url:\s*url\(/
|
148
|
-
assert_match %r{audio-path:\s*"/
|
149
|
-
assert_match %r{audio-url:\s*url\(/
|
150
|
-
assert_match %r{font-path:\s*"/
|
151
|
-
assert_match %r{font-url:\s*url\(/
|
152
|
-
assert_match %r{font-url-with-query-hash:\s*url\(/
|
153
|
-
assert_match %r{javascript-path:\s*"/
|
154
|
-
assert_match %r{javascript-url:\s*url\(/
|
155
|
-
assert_match %r{stylesheet-path:\s*"/
|
156
|
-
assert_match %r{stylesheet-url:\s*url\(/
|
92
|
+
test 'sass asset paths work' do
|
93
|
+
css_output = sprockets_render('scss_project', 'application.css.scss')
|
94
|
+
assert_match %r{asset-path:\s*"/assets/rails.png"}, css_output, 'asset-path:\s*"/assets/rails.png"'
|
95
|
+
assert_match %r{asset-url:\s*url\(/assets/rails.png\)}, css_output, 'asset-url:\s*url\(/assets/rails.png\)'
|
96
|
+
assert_match %r{image-path:\s*"/assets/rails.png"}, css_output, 'image-path:\s*"/assets/rails.png"'
|
97
|
+
assert_match %r{image-url:\s*url\(/assets/rails.png\)}, css_output, 'image-url:\s*url\(/assets/rails.png\)'
|
98
|
+
assert_match %r{video-path:\s*"/videos/rails.mp4"}, css_output, 'video-path:\s*"/videos/rails.mp4"'
|
99
|
+
assert_match %r{video-url:\s*url\(/videos/rails.mp4\)}, css_output, 'video-url:\s*url\(/videos/rails.mp4\)'
|
100
|
+
assert_match %r{audio-path:\s*"/audios/rails.mp3"}, css_output, 'audio-path:\s*"/audios/rails.mp3"'
|
101
|
+
assert_match %r{audio-url:\s*url\(/audios/rails.mp3\)}, css_output, 'audio-url:\s*url\(/audios/rails.mp3\)'
|
102
|
+
assert_match %r{font-path:\s*"/fonts/rails.ttf"}, css_output, 'font-path:\s*"/fonts/rails.ttf"'
|
103
|
+
assert_match %r{font-url:\s*url\(/fonts/rails.ttf\)}, css_output, 'font-url:\s*url\(/fonts/rails.ttf\)'
|
104
|
+
assert_match %r{font-url-with-query-hash:\s*url\(/fonts/rails.ttf\?#iefix\)}, css_output, 'font-url:\s*url\(/fonts/rails.ttf?#iefix\)'
|
105
|
+
assert_match %r{javascript-path:\s*"/javascripts/rails.js"}, css_output, 'javascript-path:\s*"/javascripts/rails.js"'
|
106
|
+
assert_match %r{javascript-url:\s*url\(/javascripts/rails.js\)}, css_output, 'javascript-url:\s*url\(/javascripts/rails.js\)'
|
107
|
+
assert_match %r{stylesheet-path:\s*"/stylesheets/rails.css"}, css_output, 'stylesheet-path:\s*"/stylesheets/rails.css"'
|
108
|
+
assert_match %r{stylesheet-url:\s*url\(/stylesheets/rails.css\)}, css_output, 'stylesheet-url:\s*url\(/stylesheets/rails.css\)'
|
157
109
|
|
158
110
|
asset_data_url_regexp = %r{asset-data-url:\s*url\((.*?)\)}
|
159
111
|
assert_match asset_data_url_regexp, css_output, 'asset-data-url:\s*url\((.*?)\)'
|
160
112
|
asset_data_url_match = css_output.match(asset_data_url_regexp)[1]
|
161
|
-
asset_data_url_expected =
|
113
|
+
asset_data_url_expected = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNzY5NDE1QkQ2NkMxMUUwOUUzM0E5Q0E2RTgyQUExQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNzY5NDE1Q0Q2NkMxMUUwOUUzM0E5Q0E2RTgyQUExQiI%2BIDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MzcyNTQ2RDY2QjExRTA5RTMzQTlDQTZFODJBQTFCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI3Njk0MTVBRDY2QzExRTA5RTMzQTlDQTZFODJBQTFCIi8%2BIDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY%2BIDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8%2B0HhJ9AAAABBJREFUeNpi%2BP%2F%2FPwNAgAEACPwC%2FtuiTRYAAAAASUVORK5CYII%3D'
|
162
114
|
assert_equal asset_data_url_expected, asset_data_url_match
|
163
115
|
end
|
164
|
-
|
165
|
-
test "css compressor compresses" do
|
166
|
-
assert_equal "div{color:red}\n", Sass::Rails::CssCompressor.new.compress(<<CSS)
|
167
|
-
div {
|
168
|
-
color: red;
|
169
|
-
}
|
170
|
-
CSS
|
171
|
-
end
|
172
|
-
|
173
|
-
def generate_scaffold(args = nil)
|
174
|
-
runcmd "bundle exec rails generate scaffold foo #{args}"
|
175
|
-
end
|
176
116
|
end
|