compass-rails 2.0.0 → 4.0.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.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +23 -4
- data/Appraisals +18 -9
- data/CHANGELOG.md +82 -0
- data/Gemfile +4 -8
- data/README.md +14 -12
- data/Rakefile +4 -23
- data/compass-rails.gemspec +3 -2
- data/gemfiles/rails52.gemfile +20 -0
- data/gemfiles/rails60.gemfile +21 -0
- data/gemfiles/rails_edge.gemfile +21 -0
- data/lib/compass-rails.rb +16 -125
- data/lib/compass-rails/patches.rb +0 -3
- data/lib/compass-rails/patches/3_1.rb +3 -12
- data/lib/compass-rails/patches/4_0.rb +23 -29
- data/lib/compass-rails/patches/compass.rb +3 -3
- data/lib/compass-rails/patches/importer.rb +10 -12
- data/lib/compass-rails/patches/sass_importer.rb +67 -7
- data/lib/compass-rails/patches/sprite_importer.rb +4 -4
- data/lib/compass-rails/railties.rb +1 -3
- data/lib/compass-rails/railties/3_1.rb +5 -12
- data/lib/compass-rails/railties/4_0.rb +11 -9
- data/lib/compass-rails/version.rb +1 -3
- data/test/compass_rails_spec.rb +58 -0
- data/test/fixtures/assets/images/letters/a.png +0 -0
- data/test/fixtures/assets/images/letters/b.png +0 -0
- data/test/fixtures/assets/images/numbers/sprite-1.png +0 -0
- data/test/fixtures/assets/images/numbers/sprite-2.png +0 -0
- data/test/fixtures/assets/stylesheets/application.css.scss +23 -0
- data/test/fixtures/assets/stylesheets/partials/_partial_1.scss +3 -0
- data/test/fixtures/assets/stylesheets/partials/_partial_2.scss +3 -0
- data/test/helpers/command_helper.rb +2 -15
- data/test/helpers/debug_helper.rb +1 -1
- data/test/helpers/file_helper.rb +2 -17
- data/test/helpers/rails_helper.rb +37 -38
- data/test/helpers/rails_project.rb +30 -70
- data/test/test_helper.rb +8 -3
- metadata +55 -24
- data/changelog.markdown +0 -11
- data/gemfiles/rails31.gemfile +0 -23
- data/gemfiles/rails32.gemfile +0 -23
- data/gemfiles/rails40.gemfile +0 -23
- data/lib/compass-rails/installer.rb +0 -30
- data/test/integrations/.gitkeep +0 -0
- data/test/integrations/rails_31_test.rb +0 -46
- data/test/integrations/rails_32_test.rb +0 -46
- data/test/integrations/rails_40_test.rb +0 -46
- data/test/units/.gitkeep +0 -0
@@ -43,7 +43,7 @@ module CompassRails
|
|
43
43
|
BUNDLER_COMMAND = 'bundle'
|
44
44
|
|
45
45
|
def run_command(command, gemfile=nil)
|
46
|
-
debug
|
46
|
+
debug "Running: #{command} with gemfile: #{gemfile}"
|
47
47
|
capture_all_output { CompassRails::Test::CommandRunner.new(command, gemfile).run }
|
48
48
|
end
|
49
49
|
|
@@ -75,14 +75,10 @@ class CompassRails::Test::CommandRunner
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def run
|
78
|
-
|
79
|
-
with_clean_env do
|
80
|
-
%x{#{@command}}
|
81
|
-
end
|
78
|
+
with_clean_env { %x{#{@command}} }
|
82
79
|
end
|
83
80
|
|
84
81
|
def exec
|
85
|
-
announce
|
86
82
|
with_clean_env { Kernel.exec(@command) }
|
87
83
|
end
|
88
84
|
|
@@ -96,15 +92,6 @@ class CompassRails::Test::CommandRunner
|
|
96
92
|
restore_env
|
97
93
|
end
|
98
94
|
|
99
|
-
def announce
|
100
|
-
return
|
101
|
-
if @gemfile
|
102
|
-
puts ">> BUNDLE_GEMFILE=#{@gemfile} #{@command}"
|
103
|
-
else
|
104
|
-
puts ">> #{@command}"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
95
|
def unset_bundler_env_vars
|
109
96
|
BUNDLER_ENV_VARS.each do |key|
|
110
97
|
@original_env[key] = ENV[key]
|
data/test/helpers/file_helper.rb
CHANGED
@@ -3,20 +3,10 @@ module CompassRails
|
|
3
3
|
module FileHelper
|
4
4
|
include DebugHelper
|
5
5
|
|
6
|
-
|
7
|
-
debug(Rainbow("Creating Directory: #{dir}").foreground(:green))
|
8
|
-
::FileUtils.mkdir_p dir
|
9
|
-
assert File.directory?(dir), "mkdir_p: #{dir} failed"
|
10
|
-
end
|
11
|
-
|
12
|
-
def rm_rf(path)
|
13
|
-
debug(Rainbow("Removing: #{path}").foreground(:red))
|
14
|
-
::FileUtils.rm_rf(path)
|
15
|
-
assert !File.directory?(path), "rm_rf: #{path} failed"
|
16
|
-
end
|
6
|
+
delegate :mkdir_p, :rm, :rm_rf, :cp_r, :touch, to: ::FileUtils
|
17
7
|
|
18
8
|
def cd(path, &block)
|
19
|
-
debug
|
9
|
+
debug "Entering: #{path}"
|
20
10
|
Dir.chdir(path, &block)
|
21
11
|
end
|
22
12
|
|
@@ -26,11 +16,6 @@ module CompassRails
|
|
26
16
|
File.open(file_name, 'w') { |file| file << content }
|
27
17
|
end
|
28
18
|
|
29
|
-
def touch(file)
|
30
|
-
debug(Rainbow("Touching File: #{file}").foreground(:green))
|
31
|
-
::FileUtils.touch(file)
|
32
|
-
end
|
33
|
-
|
34
19
|
def inject_into_file(file_name, replacement, position, anchor)
|
35
20
|
case position
|
36
21
|
when :after
|
@@ -1,59 +1,58 @@
|
|
1
|
-
|
2
1
|
module CompassRails
|
3
2
|
module Test
|
4
3
|
module RailsHelpers
|
5
4
|
include FileHelper
|
6
5
|
include DebugHelper
|
7
6
|
include CommandHelper
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
RAILS_6_1 = "6.1"
|
8
|
+
RAILS_6_0 = "6.0"
|
9
|
+
RAILS_5_2 = "5.2"
|
11
10
|
|
12
11
|
WORKING_DIR = File.join(ROOT_PATH, 'rails-temp')
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
VERSION_LOOKUP = {
|
14
|
+
RAILS_6_1 => %r{^6\.1\.},
|
15
|
+
RAILS_6_0 => %r{^6\.0\.},
|
16
|
+
RAILS_5_2 => %r{^5\.2\.},
|
18
17
|
}
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
GEMFILES = {
|
20
|
+
RAILS_6_1 => GEMFILES_DIR.join("rails_edge.gemfile").to_s,
|
21
|
+
RAILS_6_0 => GEMFILES_DIR.join("rails60.gemfile").to_s,
|
22
|
+
RAILS_5_2 => GEMFILES_DIR.join("rails52.gemfile").to_s,
|
24
23
|
}
|
25
24
|
|
26
|
-
|
27
|
-
RAILS_4_0 => 'new',
|
28
|
-
RAILS_3_2 => 'new',
|
29
|
-
RAILS_3_1 => 'new'
|
30
|
-
}
|
25
|
+
GENERATOR_OPTIONS = ['-q', '-G', '-O', '--skip-bundle']
|
31
26
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
27
|
+
def rails_command(options)
|
28
|
+
debug cmd = "rails #{options.join(' ')}"
|
29
|
+
run_command(cmd, GEMFILES[rails_version])
|
30
|
+
end
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
def generate_rails_app(name, version, options=[])
|
41
|
-
options += GENERATOR_OPTIONS[version]
|
42
|
-
rails_command([GENERATOR_COMMAND[version], name, *options], version)
|
43
|
-
end
|
32
|
+
def rails_version
|
33
|
+
@rails_version ||= VERSION_LOOKUP.detect { |version, regex| CompassRails.version_match(regex) }.first
|
34
|
+
end
|
44
35
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
36
|
+
# Generate a rails application without polluting our current set of requires
|
37
|
+
# with the rails libraries. This will allow testing against multiple versions of rails
|
38
|
+
# by manipulating the load path.
|
39
|
+
def generate_rails_app(name, options = [])
|
40
|
+
options += GENERATOR_OPTIONS
|
41
|
+
rails_command(['new', name, *options])
|
42
|
+
end
|
43
|
+
|
44
|
+
def within_rails_app(named, &block)
|
45
|
+
dir = "#{named}-#{rails_version}"
|
46
|
+
rm_rf File.join(WORKING_DIR, dir)
|
47
|
+
mkdir_p WORKING_DIR
|
48
|
+
cd(WORKING_DIR) do
|
49
|
+
generate_rails_app(dir, [])
|
50
|
+
cd(dir) do
|
51
|
+
yield RailsProject.new(File.join(WORKING_DIR, dir), rails_version)
|
52
|
+
end
|
53
53
|
end
|
54
|
+
rm_rf File.join(WORKING_DIR, dir) unless ENV['DEBUG_COMPILE']
|
54
55
|
end
|
55
|
-
rm_rf File.join(WORKING_DIR, dir)
|
56
|
-
end
|
57
56
|
|
58
57
|
end
|
59
58
|
end
|
@@ -7,21 +7,14 @@ module CompassRails
|
|
7
7
|
include RailsHelpers
|
8
8
|
include Kernal::Captures
|
9
9
|
|
10
|
-
|
11
|
-
GEMFILE = 'Gemfile'
|
12
|
-
GEMFILE_LOCK = 'Gemfile.lock'
|
13
|
-
ENVIRONMENT = 'config/environment.rb'
|
14
|
-
COMPASS_CONFIG = 'config/compass.rb'
|
15
10
|
APPLICATION_FILE = 'config/application.rb'
|
16
|
-
BOOT_FILE = 'config/boot.rb'
|
17
|
-
|
18
11
|
|
19
|
-
attr_reader :directory, :version
|
12
|
+
attr_reader :directory, :version
|
20
13
|
|
21
|
-
def initialize(directory, version
|
14
|
+
def initialize(directory, version)
|
22
15
|
@directory = Pathname.new(directory)
|
23
16
|
@version = version
|
24
|
-
|
17
|
+
disable_cookies! if version == '3.1'
|
25
18
|
end
|
26
19
|
|
27
20
|
## FILE METHODS
|
@@ -34,89 +27,56 @@ module CompassRails
|
|
34
27
|
File.basename(directory)
|
35
28
|
end
|
36
29
|
|
37
|
-
def
|
38
|
-
|
30
|
+
def file(path)
|
31
|
+
directory.join(path)
|
39
32
|
end
|
40
33
|
|
41
|
-
|
42
|
-
if asset_pipeline_enabled
|
43
|
-
return directory.join('app', 'assets', 'stylesheets', 'screen.css.scss')
|
44
|
-
else
|
45
|
-
return directory.join('app', 'assets', 'stylesheets','screen.scss')
|
46
|
-
end
|
47
|
-
end
|
34
|
+
# RAILS METHODS
|
48
35
|
|
49
|
-
def
|
50
|
-
|
36
|
+
def boots?
|
37
|
+
rails_property("compass.project_type") == "rails"
|
51
38
|
end
|
52
39
|
|
53
|
-
def
|
54
|
-
|
40
|
+
def precompile!
|
41
|
+
run_command("rake assets:precompile", GEMFILES[version])
|
55
42
|
end
|
56
43
|
|
57
|
-
def
|
58
|
-
|
44
|
+
def setup_asset_fixtures!
|
45
|
+
rm_rf file("app/assets")
|
46
|
+
cp_r CompassRails::Test.root.join('test', 'fixtures', 'assets'), file("app")
|
59
47
|
end
|
60
48
|
|
61
|
-
|
62
|
-
|
63
|
-
def rails3?
|
64
|
-
directory.join(APPLICATION_FILE).exist?
|
49
|
+
def precompiled?(path)
|
50
|
+
!Dir[asset_path(path)].empty?
|
65
51
|
end
|
66
52
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
r = runner(test_string)
|
72
|
-
if r =~ matcher
|
73
|
-
return true
|
74
|
-
else
|
75
|
-
return false
|
53
|
+
def compiled_stylesheet(path, &block)
|
54
|
+
File.open(asset_path(path)).read.tap do |css|
|
55
|
+
debug(css)
|
56
|
+
yield css if block_given?
|
76
57
|
end
|
77
58
|
end
|
78
59
|
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
# COMPASS METHODS
|
84
|
-
|
85
|
-
def run_compass(command)
|
86
|
-
run_command("compass #{command}", GEMFILES[version])
|
60
|
+
def asset_path(path_pattern)
|
61
|
+
Dir[file(path_pattern)].first.tap do |asset|
|
62
|
+
raise 'Asset not found' if asset.nil?
|
63
|
+
end
|
87
64
|
end
|
88
65
|
|
89
|
-
def
|
90
|
-
|
91
|
-
unless file.exist?
|
92
|
-
touch file
|
93
|
-
end
|
94
|
-
inject_at_bottom(file, "#{property} = '#{value}'")
|
66
|
+
def rails_property(key)
|
67
|
+
rails_command(['runner', "'puts Rails.application.config.#{key}'"]).chomp
|
95
68
|
end
|
96
69
|
|
97
70
|
def set_rails(property, value)
|
98
|
-
value =
|
99
|
-
"\n config.#{property} = :#{value}\n"
|
100
|
-
else
|
101
|
-
"\n config.#{property} = '#{value}'\n"
|
102
|
-
end
|
71
|
+
value = "\n config.#{property} = #{value.inspect}\n"
|
103
72
|
inject_into_file(directory.join(APPLICATION_FILE), value, :after, 'class Application < Rails::Application')
|
104
73
|
end
|
105
74
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
def add_to_gemfile(name, requirements)
|
111
|
-
gemfile = directory.join(GEMFILE)
|
112
|
-
debug(Rainbow("Adding gem #{name} to file: #{gemfile}").foreground(:green))
|
113
|
-
if requirements
|
114
|
-
gem_string = " gem '#{name}', #{requirements}\n"
|
115
|
-
else
|
116
|
-
gem_string = " gem '#{name}'\n"
|
117
|
-
end
|
118
|
-
inject_at_bottom(gemfile, gem_string)
|
75
|
+
def disable_cookies!
|
76
|
+
value = "\n config.middleware.delete 'ActionDispatch::Session::CookieStore'\n"
|
77
|
+
inject_into_file(directory.join(APPLICATION_FILE), value, :after, 'class Application < Rails::Application')
|
119
78
|
end
|
79
|
+
|
120
80
|
end
|
121
81
|
end
|
122
82
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
require '
|
1
|
+
require 'minitest/autorun'
|
2
2
|
require 'compass-rails'
|
3
|
-
require '
|
3
|
+
require 'active_support/all'
|
4
4
|
|
5
5
|
module CompassRails
|
6
6
|
module Test
|
7
7
|
ROOT_PATH = File.expand_path('../../', __FILE__)
|
8
|
+
|
9
|
+
def self.root
|
10
|
+
Pathname.new(ROOT_PATH)
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
|
@@ -12,4 +16,5 @@ end
|
|
12
16
|
require File.join(File.expand_path('../', __FILE__), 'helpers', "#{helper}_helper")
|
13
17
|
end
|
14
18
|
|
15
|
-
require File.join(File.expand_path('../', __FILE__), 'helpers', "rails_project")
|
19
|
+
require File.join(File.expand_path('../', __FILE__), 'helpers', "rails_project")
|
20
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compass-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Davis
|
@@ -10,22 +10,50 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-02-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: compass
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 1.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - "
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 1.0.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: sprockets
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "<"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '4.0'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '4.0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: sass-rails
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "<"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '5.1'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '5.1'
|
29
57
|
description: Integrate Compass into Rails 3.0 and up.
|
30
58
|
email:
|
31
59
|
- jetviper21@gmail.com
|
@@ -38,19 +66,18 @@ files:
|
|
38
66
|
- ".gitignore"
|
39
67
|
- ".travis.yml"
|
40
68
|
- Appraisals
|
69
|
+
- CHANGELOG.md
|
41
70
|
- Gemfile
|
42
71
|
- Guardfile
|
43
72
|
- LICENSE
|
44
73
|
- README.md
|
45
74
|
- Rakefile
|
46
|
-
- changelog.markdown
|
47
75
|
- compass-rails.gemspec
|
48
|
-
- gemfiles/
|
49
|
-
- gemfiles/
|
50
|
-
- gemfiles/
|
76
|
+
- gemfiles/rails52.gemfile
|
77
|
+
- gemfiles/rails60.gemfile
|
78
|
+
- gemfiles/rails_edge.gemfile
|
51
79
|
- lib/compass-rails.rb
|
52
80
|
- lib/compass-rails/configuration.rb
|
53
|
-
- lib/compass-rails/installer.rb
|
54
81
|
- lib/compass-rails/patches.rb
|
55
82
|
- lib/compass-rails/patches/3_1.rb
|
56
83
|
- lib/compass-rails/patches/4_0.rb
|
@@ -64,18 +91,21 @@ files:
|
|
64
91
|
- lib/compass-rails/railties/4_0.rb
|
65
92
|
- lib/compass-rails/version.rb
|
66
93
|
- sache.json
|
94
|
+
- test/compass_rails_spec.rb
|
67
95
|
- test/fixtures/.gitkeep
|
96
|
+
- test/fixtures/assets/images/letters/a.png
|
97
|
+
- test/fixtures/assets/images/letters/b.png
|
98
|
+
- test/fixtures/assets/images/numbers/sprite-1.png
|
99
|
+
- test/fixtures/assets/images/numbers/sprite-2.png
|
100
|
+
- test/fixtures/assets/stylesheets/application.css.scss
|
101
|
+
- test/fixtures/assets/stylesheets/partials/_partial_1.scss
|
102
|
+
- test/fixtures/assets/stylesheets/partials/_partial_2.scss
|
68
103
|
- test/helpers/command_helper.rb
|
69
104
|
- test/helpers/debug_helper.rb
|
70
105
|
- test/helpers/file_helper.rb
|
71
106
|
- test/helpers/rails_helper.rb
|
72
107
|
- test/helpers/rails_project.rb
|
73
|
-
- test/integrations/.gitkeep
|
74
|
-
- test/integrations/rails_31_test.rb
|
75
|
-
- test/integrations/rails_32_test.rb
|
76
|
-
- test/integrations/rails_40_test.rb
|
77
108
|
- test/test_helper.rb
|
78
|
-
- test/units/.gitkeep
|
79
109
|
homepage: https://github.com/Compass/compass-rails
|
80
110
|
licenses:
|
81
111
|
- MIT
|
@@ -95,22 +125,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
125
|
- !ruby/object:Gem::Version
|
96
126
|
version: '0'
|
97
127
|
requirements: []
|
98
|
-
|
99
|
-
rubygems_version: 2.2.2
|
128
|
+
rubygems_version: 3.0.3
|
100
129
|
signing_key:
|
101
130
|
specification_version: 4
|
102
131
|
summary: Integrate Compass into Rails 3.0 and up.
|
103
132
|
test_files:
|
133
|
+
- test/compass_rails_spec.rb
|
104
134
|
- test/fixtures/.gitkeep
|
135
|
+
- test/fixtures/assets/images/letters/a.png
|
136
|
+
- test/fixtures/assets/images/letters/b.png
|
137
|
+
- test/fixtures/assets/images/numbers/sprite-1.png
|
138
|
+
- test/fixtures/assets/images/numbers/sprite-2.png
|
139
|
+
- test/fixtures/assets/stylesheets/application.css.scss
|
140
|
+
- test/fixtures/assets/stylesheets/partials/_partial_1.scss
|
141
|
+
- test/fixtures/assets/stylesheets/partials/_partial_2.scss
|
105
142
|
- test/helpers/command_helper.rb
|
106
143
|
- test/helpers/debug_helper.rb
|
107
144
|
- test/helpers/file_helper.rb
|
108
145
|
- test/helpers/rails_helper.rb
|
109
146
|
- test/helpers/rails_project.rb
|
110
|
-
- test/integrations/.gitkeep
|
111
|
-
- test/integrations/rails_31_test.rb
|
112
|
-
- test/integrations/rails_32_test.rb
|
113
|
-
- test/integrations/rails_40_test.rb
|
114
147
|
- test/test_helper.rb
|
115
|
-
- test/units/.gitkeep
|
116
|
-
has_rdoc:
|