compass-rails 1.1.7 → 2.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 -13
- data/Appraisals +0 -4
- data/README.md +13 -16
- data/compass-rails.gemspec +0 -1
- data/lib/compass-rails.rb +17 -28
- data/lib/compass-rails/configuration.rb +77 -1
- data/lib/compass-rails/patches/4_0.rb +23 -3
- data/lib/compass-rails/patches/sass_importer.rb +32 -27
- data/lib/compass-rails/railties.rb +0 -2
- data/lib/compass-rails/railties/3_1.rb +38 -86
- data/lib/compass-rails/railties/4_0.rb +43 -89
- data/lib/compass-rails/version.rb +1 -1
- data/test/helpers/rails_helper.rb +3 -7
- data/test/integrations/rails_31_test.rb +3 -4
- data/test/integrations/rails_32_test.rb +4 -4
- data/test/integrations/rails_40_test.rb +2 -2
- data/test/test_helper.rb +1 -1
- metadata +12 -33
- data/gemfiles/rails3.gemfile +0 -22
- data/lib/compass-rails/configuration/asset_pipeline.rb +0 -51
- data/lib/compass-rails/configuration/default.rb +0 -75
- data/lib/compass-rails/railties/3_0.rb +0 -48
- data/test/integrations/rails3_test.rb +0 -37
- data/test/integrations/rails_32_without_pipeline_test.rb +0 -37
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YTRiYTc0M2VhZjkyOGJkNzVmNWYxMDJmOTE0OTA2ZGY3MzBiZjEzMA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 32048be7b100642ba51ac64ba90f5d8772db0089
|
4
|
+
data.tar.gz: 72b5056ea2292f497bc0bcbf2b3bdb94f9aae889
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjdhMTkxZjYyMmI0ZjViODhhMWIyMmRiMjVjZDlhMjEyNzUyNTVjY2I5Njc5
|
11
|
-
MTk1YjQ5YWVhMmNmN2NmMzVmNDQxMWFhM2Y0MDU2OGNiNWI3ZmI=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
N2Q2ZmE3OTYxNzM5MDJiMzFiMTQ0YzQ5ZWU0YzFjZDNiZDFlODFmMzMxZmM3
|
14
|
-
NjFiMTRhZDk0ZmY0ODdhOTcwYjM1NGI4MzM0ZDk0NTVmNGU1OWI0ZTMxNjVj
|
15
|
-
ZmNlMjI4NTk5Y2EyZjFiOWJhMTY1YTU0YThmZWZlM2VkN2JmZjk=
|
6
|
+
metadata.gz: 52f299102a23a6cc39be6bb5b38fcaa9e7fa68f5988eb1f055420508729e626497f91d4540ea364e70eb4141de3f5cf1e84c135fd48438dc8d8010e87ad63453
|
7
|
+
data.tar.gz: cdb26631fb53897b9a4ecdb3d304fd514956f23bebfd766f4825c90711a2cbfcad708fcbaa81a24dc28c493c2e98cc72a4f575c9b05d828d5739babba8bba847
|
data/Appraisals
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
**We Take Pull Requests!**
|
4
4
|
|
5
|
-
[](https://travis-ci.org/Compass/compass-rails)
|
6
6
|
[](https://codeclimate.com/github/Compass/compass-rails)
|
7
7
|
|
8
8
|
Compass rails is an adapter for the [Compass Stylesheet Authoring
|
@@ -10,17 +10,15 @@ Framework](http://compass-style.org) for [Ruby on Rails](http://rubyonrails.org/
|
|
10
10
|
|
11
11
|
Since Compass v0.12.0, this is the only way to use compass with your rails application.
|
12
12
|
|
13
|
-
Supports Rails 3.
|
13
|
+
Supports Rails 3.2, 4.x releases.
|
14
14
|
|
15
15
|
## Installation
|
16
16
|
|
17
|
-
Add the `compass-rails` gem line to
|
17
|
+
Add the `compass-rails` gem line to your application's Gemfile
|
18
18
|
|
19
19
|
```ruby
|
20
|
-
|
21
|
-
|
22
|
-
gem 'compass-rails'
|
23
|
-
end
|
20
|
+
gem 'sass-rails'
|
21
|
+
gem 'compass-rails'
|
24
22
|
```
|
25
23
|
|
26
24
|
If you are using any Compass extensions, add them to this group in your
|
@@ -32,12 +30,13 @@ And then execute:
|
|
32
30
|
|
33
31
|
## Usage
|
34
32
|
|
35
|
-
Change your `application.css` to `application.css.scss` or `application.css.sass` and
|
33
|
+
Change your `application.css` to `application.css.scss` or `application.css.sass` and then `@import compass` and your own stylesheets to your hearts content. E.g.:
|
36
34
|
|
37
35
|
```scss
|
38
|
-
@import "
|
39
|
-
@import "project/base";
|
36
|
+
@import "compass";
|
40
37
|
|
38
|
+
@import "your_project/mixins";
|
39
|
+
@import "your_project/base";
|
41
40
|
```
|
42
41
|
|
43
42
|
*or*
|
@@ -63,7 +62,7 @@ configuration object exposed to rails within any configuration block.
|
|
63
62
|
|
64
63
|
### Installing Compass extensions
|
65
64
|
|
66
|
-
Step 1: Add it to your Gemfile
|
65
|
+
Step 1: Add it to your Gemfile and run the `bundle` command to install it.
|
67
66
|
|
68
67
|
Step 2: Install the extension's assets: `bundle exec compass install
|
69
68
|
<extension/template>`
|
@@ -72,17 +71,15 @@ For example, if you want to use susy.
|
|
72
71
|
|
73
72
|
```ruby
|
74
73
|
# Gemfile
|
75
|
-
|
76
|
-
|
77
|
-
gem 'compass-susy-plugin'
|
78
|
-
end
|
74
|
+
gem 'compass-rails'
|
75
|
+
gem 'compass-susy-plugin'
|
79
76
|
```
|
80
77
|
|
81
78
|
then run:
|
82
79
|
|
83
80
|
$ bundle
|
84
81
|
$ bundle exec compass install susy
|
85
|
-
|
82
|
+
|
86
83
|
if you are using the rails configuration files you should add:
|
87
84
|
|
88
85
|
```ruby
|
data/compass-rails.gemspec
CHANGED
data/lib/compass-rails.rb
CHANGED
@@ -4,10 +4,9 @@ require "compass-rails/configuration"
|
|
4
4
|
|
5
5
|
module CompassRails
|
6
6
|
|
7
|
-
RAILS_4 = %r{^4.[0|1]}
|
7
|
+
RAILS_4 = %r{^4.[0|1|2]}
|
8
8
|
RAILS_32 = %r{^3.2}
|
9
9
|
RAILS_31 = %r{^3.1}
|
10
|
-
RAILS_3 = %r{^3.0}
|
11
10
|
|
12
11
|
extend self
|
13
12
|
|
@@ -22,12 +21,10 @@ module CompassRails
|
|
22
21
|
end
|
23
22
|
#load the rails config
|
24
23
|
require "#{rails_config_path}/config/application.rb"
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
@app ||= ::Rails.application.initialize!
|
30
|
-
end
|
24
|
+
require 'sass-rails'
|
25
|
+
require 'sprockets/railtie'
|
26
|
+
require 'rails/engine'
|
27
|
+
@app ||= ::Rails.application.initialize!
|
31
28
|
end
|
32
29
|
|
33
30
|
|
@@ -84,11 +81,6 @@ module CompassRails
|
|
84
81
|
rails_spec.version.to_s
|
85
82
|
end
|
86
83
|
|
87
|
-
def rails3?
|
88
|
-
return false unless defined?(::Rails)
|
89
|
-
version_match RAILS_3
|
90
|
-
end
|
91
|
-
|
92
84
|
def rails31?
|
93
85
|
return false unless defined?(::Rails)
|
94
86
|
version_match RAILS_31
|
@@ -123,18 +115,10 @@ module CompassRails
|
|
123
115
|
def configuration
|
124
116
|
load_rails
|
125
117
|
config = Compass::Configuration::Data.new('rails')
|
126
|
-
config.extend(Configuration
|
127
|
-
if asset_pipeline_enabled?
|
128
|
-
require "compass-rails/configuration/asset_pipeline"
|
129
|
-
config.extend(Configuration::AssetPipeline)
|
130
|
-
end
|
118
|
+
config.extend(CompassRails::Configuration)
|
131
119
|
config
|
132
120
|
end
|
133
121
|
|
134
|
-
def env
|
135
|
-
env_production? ? :production : :development
|
136
|
-
end
|
137
|
-
|
138
122
|
def prefix
|
139
123
|
::Rails.application.config.assets.prefix
|
140
124
|
end
|
@@ -206,13 +190,18 @@ module CompassRails
|
|
206
190
|
end
|
207
191
|
|
208
192
|
def boot_config
|
209
|
-
config =
|
210
|
-
|
211
|
-
|
212
|
-
|
193
|
+
config = begin
|
194
|
+
if (config_file = Compass.detect_configuration_file) &&
|
195
|
+
(config_data = Compass.configuration_for(config_file))
|
196
|
+
config_data
|
197
|
+
else
|
198
|
+
Compass::Configuration::Data.new("compass_rails_boot")
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
config.tap do |c|
|
203
|
+
c.top_level.project_type = :rails
|
213
204
|
end
|
214
|
-
config.top_level.project_type = :rails
|
215
|
-
config
|
216
205
|
end
|
217
206
|
|
218
207
|
def asset_pipeline_enabled?
|
@@ -1 +1,77 @@
|
|
1
|
-
|
1
|
+
module CompassRails
|
2
|
+
module Configuration
|
3
|
+
def default_images_dir
|
4
|
+
File.join("app", "assets", "images")
|
5
|
+
end
|
6
|
+
|
7
|
+
def default_fonts_dir
|
8
|
+
File.join("app", "assets", "fonts")
|
9
|
+
end
|
10
|
+
|
11
|
+
def default_javascripts_dir
|
12
|
+
File.join("app", "assets", "javascripts")
|
13
|
+
end
|
14
|
+
|
15
|
+
def default_css_dir
|
16
|
+
File.join('public', CompassRails.prefix)
|
17
|
+
end
|
18
|
+
|
19
|
+
def default_http_path
|
20
|
+
File.join(CompassRails.prefix)
|
21
|
+
end
|
22
|
+
|
23
|
+
def default_http_images_path
|
24
|
+
"#{top_level.http_path}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def default_http_javascripts_path
|
28
|
+
"#{top_level.http_path}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def default_http_fonts_path
|
32
|
+
"#{top_level.http_path}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def default_http_stylesheets_path
|
36
|
+
"#{top_level.http_path}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def default_preferred_syntax
|
40
|
+
::Rails.application.config.sass.preferred_syntax rescue nil
|
41
|
+
end
|
42
|
+
|
43
|
+
def default_sprite_load_path
|
44
|
+
CompassRails.sprockets.paths
|
45
|
+
end
|
46
|
+
|
47
|
+
def project_type_without_default
|
48
|
+
:rails
|
49
|
+
end
|
50
|
+
|
51
|
+
def default_sass_dir
|
52
|
+
File.join("app", "assets", "stylesheets")
|
53
|
+
end
|
54
|
+
|
55
|
+
def default_http_generated_images_path
|
56
|
+
# Relies on the fact that this will be loaded after the "normal"
|
57
|
+
# defaults, so that method_missing finds http_root_relative
|
58
|
+
http_root_relative "images"
|
59
|
+
end
|
60
|
+
|
61
|
+
def default_extensions_dir
|
62
|
+
File.join("vendor", "plugins", "compass_extensions")
|
63
|
+
end
|
64
|
+
|
65
|
+
def default_cache_dir
|
66
|
+
File.join("tmp", "sass-cache")
|
67
|
+
end
|
68
|
+
|
69
|
+
def default_project_path
|
70
|
+
Rails.root
|
71
|
+
end
|
72
|
+
|
73
|
+
def default_environment
|
74
|
+
Rails.env
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -4,14 +4,34 @@ require 'compass-rails/patches/sprite_importer'
|
|
4
4
|
|
5
5
|
module Sass::Script::Functions
|
6
6
|
def generated_image_url(path, only_path = nil)
|
7
|
-
|
7
|
+
pathobject = Pathname.new(path.to_s)
|
8
|
+
subdirectory = pathobject.dirname.to_s
|
9
|
+
|
10
|
+
cachebust_generated_images(path, subdirectory)
|
8
11
|
asset_url(path)
|
9
12
|
end
|
10
13
|
|
11
|
-
def cachebust_generated_images
|
14
|
+
def cachebust_generated_images(image_path, subdirectory = nil)
|
12
15
|
generated_images_path = Rails.root.join(Compass.configuration.generated_images_dir).to_s
|
16
|
+
if subdirectory.nil?
|
17
|
+
bust_cache_path = generated_images_path
|
18
|
+
else
|
19
|
+
bust_cache_path = generated_images_path + "/" + subdirectory
|
20
|
+
end
|
21
|
+
bust_image_stat_path = generated_images_path + "/" + image_path.to_s
|
22
|
+
|
13
23
|
sprockets_entries = options[:sprockets][:environment].send(:trail).instance_variable_get(:@entries)
|
14
|
-
|
24
|
+
|
25
|
+
# sprockets_entries.delete(generated_images_path) if sprockets_entries.has_key? generated_images_path
|
26
|
+
if sprockets_entries.has_key? generated_images_path
|
27
|
+
# sprockets_entries.delete(generated_images_path)
|
28
|
+
|
29
|
+
# Delete the entries (directories) which cache the files/dirs in a directory
|
30
|
+
options[:sprockets][:environment].send(:trail).instance_variable_get(:@entries).delete(bust_cache_path)
|
31
|
+
|
32
|
+
# Delete the stats (file/dir info) which cache the what kind of file/dir each image is
|
33
|
+
options[:sprockets][:environment].send(:trail).instance_variable_get(:@stats).delete(bust_image_stat_path)
|
34
|
+
end
|
15
35
|
end
|
16
36
|
end
|
17
37
|
|
@@ -1,31 +1,36 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
klass = if defined?(Sass::Rails::SassTemplate)
|
2
|
+
Sass::Rails::SassTemplate
|
3
|
+
else
|
4
|
+
Sprockets::SassTemplate
|
5
|
+
end
|
6
|
+
|
7
|
+
klass.class_eval do
|
8
|
+
def evaluate(context, locals, &block)
|
9
|
+
# Use custom importer that knows about Sprockets Caching
|
10
|
+
cache_store = Sprockets::SassCacheStore.new(context.environment)
|
11
|
+
paths = context.environment.paths.map { |path| CompassRails::SpriteImporter.new(context, path) }
|
12
|
+
paths += context.environment.paths.map { |path| self.class.parent::SassImporter.new(context, path) }
|
13
|
+
paths += ::Rails.application.config.sass.load_paths
|
9
14
|
|
10
15
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
options = CompassRails.sass_config.merge( {
|
17
|
+
:filename => eval_file,
|
18
|
+
:line => line,
|
19
|
+
:syntax => syntax,
|
20
|
+
:cache_store => cache_store,
|
21
|
+
:importer => self.class.parent::SassImporter.new(context, context.pathname),
|
22
|
+
:load_paths => paths,
|
23
|
+
:sprockets => {
|
24
|
+
:context => context,
|
25
|
+
:environment => context.environment
|
26
|
+
}
|
27
|
+
})
|
23
28
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
29
|
+
::Sass::Engine.new(data, options).render
|
30
|
+
rescue ::Sass::SyntaxError => e
|
31
|
+
# Annotates exception message with parse line number
|
32
|
+
context.__LINE__ = e.sass_backtrace.first[:line]
|
33
|
+
raise e
|
30
34
|
end
|
31
|
-
end
|
35
|
+
end
|
36
|
+
|
@@ -1,93 +1,8 @@
|
|
1
|
-
#3.1.3
|
2
|
-
require 'compass'
|
3
|
-
require 'rails/railtie'
|
4
|
-
|
5
|
-
class Rails::Railtie::Configuration
|
6
|
-
# Adds compass configuration accessor to the application configuration.
|
7
|
-
#
|
8
|
-
# If a configuration file for compass exists, it will be read in and
|
9
|
-
# the project's configuration values will already be set on the config
|
10
|
-
# object.
|
11
|
-
#
|
12
|
-
# For example:
|
13
|
-
#
|
14
|
-
# module MyApp
|
15
|
-
# class Application < Rails::Application
|
16
|
-
# config.compass.line_comments = !Rails.env.production?
|
17
|
-
# config.compass.fonts_dir = "app/assets/fonts"
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# It is suggested that you create a compass configuration file if you
|
22
|
-
# want a quicker boot time when using the compass command line tool.
|
23
|
-
#
|
24
|
-
# For more information on available configuration options see:
|
25
|
-
# http://compass-style.org/help/tutorials/configuration-reference/
|
26
|
-
def compass
|
27
|
-
@compass ||= begin
|
28
|
-
data = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
|
29
|
-
config_data
|
30
|
-
else
|
31
|
-
Compass::Configuration::Data.new("rails_config")
|
32
|
-
end
|
33
|
-
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
34
|
-
Compass.add_configuration(:rails)
|
35
|
-
Compass.add_configuration(data)
|
36
|
-
Compass.configuration.on_sprite_saved do |filename|
|
37
|
-
# This is a huge hack based on reading through the sprockets internals.
|
38
|
-
# Sprockets needs an API for adding assets during precompilation.
|
39
|
-
# At a minimum sprockets should provide this API:
|
40
|
-
#
|
41
|
-
# #filename is a path in the asset source directory
|
42
|
-
# Rails.application.assets.new_asset!(filename)
|
43
|
-
#
|
44
|
-
# # logical_path is how devs refer to it, data is the contents of it.
|
45
|
-
# Rails.application.assets.new_asset!(logical_path, data)
|
46
|
-
#
|
47
|
-
# I would also like to select one of the above calls based on whether
|
48
|
-
# the user is precompiling or not:
|
49
|
-
#
|
50
|
-
# Rails.application.assets.precompiling? #=> true or false
|
51
|
-
#
|
52
|
-
# But even the above is not an ideal API. The issue is that compass sprites need to
|
53
|
-
# avoid generation if the sprite file is already generated (which can be quite time
|
54
|
-
# consuming). To do this, compass has it's own uniqueness hash based on the user's
|
55
|
-
# inputs instead of being based on the file contents. So if we could provide our own
|
56
|
-
# hash or some metadata that is opaque to sprockets that could be read from the
|
57
|
-
# asset's attributes, we could avoid cluttering the assets directory with generated
|
58
|
-
# sprites and always just use the logical_path + data version of the api.
|
59
|
-
if Rails.application.config.assets.digest && # if digesting is enabled
|
60
|
-
caller.grep(/static_compiler/).any? && #OMG HAX - check if we're being precompiled
|
61
|
-
Compass.configuration.generated_images_path[Compass.configuration.images_path] # if the generated images path is not in the assets images directory, we don't have to do these backflips
|
62
|
-
|
63
|
-
# Clear entries in Hike::Index for this sprite's directory.
|
64
|
-
# This makes sure the asset can be found by find_assets
|
65
|
-
Rails.application.assets.send(:trail).instance_variable_get(:@entries).delete(File.dirname(filename))
|
66
|
-
|
67
|
-
pathname = Pathname.new(filename)
|
68
|
-
logical_path = pathname.relative_path_from(Pathname.new(Compass.configuration.images_path))
|
69
|
-
asset = Rails.application.assets.find_asset(logical_path)
|
70
|
-
target = File.join(Rails.public_path, Rails.application.config.assets.prefix, asset.digest_path)
|
71
|
-
|
72
|
-
# Adds the asset to the manifest file.
|
73
|
-
Sprockets::StaticCompiler.generated_sprites[logical_path.to_s] = asset.digest_path
|
74
|
-
|
75
|
-
# Adds the fingerprinted asset to the public directory
|
76
|
-
FileUtils.mkdir_p File.dirname(target)
|
77
|
-
asset.write_to target
|
78
|
-
|
79
|
-
end
|
80
|
-
end
|
81
|
-
data
|
82
|
-
end
|
83
|
-
@compass
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
1
|
module CompassRails
|
88
2
|
class Railtie < Rails::Railtie
|
89
3
|
|
90
4
|
initializer "compass.initialize_rails", :group => :all do |app|
|
5
|
+
require 'compass'
|
91
6
|
if CompassRails.asset_pipeline_enabled?
|
92
7
|
require 'compass-rails/patches/3_1'
|
93
8
|
# Configure compass for use within rails, and provide the project configuration
|
@@ -99,5 +14,42 @@ module CompassRails
|
|
99
14
|
CompassRails.initialize!(app.config.compass)
|
100
15
|
end
|
101
16
|
end
|
17
|
+
|
18
|
+
config.compass = begin
|
19
|
+
@compass ||= begin
|
20
|
+
data = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
|
21
|
+
config_data
|
22
|
+
else
|
23
|
+
Compass::Configuration::Data.new("rails_config")
|
24
|
+
end
|
25
|
+
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
26
|
+
Compass.add_configuration(:rails)
|
27
|
+
Compass.add_configuration(data)
|
28
|
+
Compass.configuration.on_sprite_saved do |filename|
|
29
|
+
if Rails.application.config.assets.digest && # if digesting is enabled
|
30
|
+
caller.grep(/static_compiler/).any? && #OMG HAX - check if we're being precompiled
|
31
|
+
Compass.configuration.generated_images_path[Compass.configuration.images_path] # if the generated images path is not in the assets images directory, we don't have to do these backflips
|
32
|
+
|
33
|
+
# Clear entries in Hike::Index for this sprite's directory.
|
34
|
+
# This makes sure the asset can be found by find_assets
|
35
|
+
Rails.application.assets.send(:trail).instance_variable_get(:@entries).delete(File.dirname(filename))
|
36
|
+
|
37
|
+
pathname = Pathname.new(filename)
|
38
|
+
logical_path = pathname.relative_path_from(Pathname.new(Compass.configuration.images_path))
|
39
|
+
asset = Rails.application.assets.find_asset(logical_path)
|
40
|
+
target = File.join(Rails.public_path, Rails.application.config.assets.prefix, asset.digest_path)
|
41
|
+
|
42
|
+
# Adds the asset to the manifest file.
|
43
|
+
Sprockets::StaticCompiler.generated_sprites[logical_path.to_s] = asset.digest_path
|
44
|
+
|
45
|
+
# Adds the fingerprinted asset to the public directory
|
46
|
+
FileUtils.mkdir_p File.dirname(target)
|
47
|
+
asset.write_to target
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
data
|
52
|
+
end
|
53
|
+
end
|
102
54
|
end
|
103
55
|
end
|
@@ -1,96 +1,8 @@
|
|
1
|
-
#3.1.3
|
2
|
-
require 'compass'
|
3
|
-
require 'rails/railtie'
|
4
|
-
|
5
|
-
class Rails::Railtie::Configuration
|
6
|
-
# Adds compass configuration accessor to the application configuration.
|
7
|
-
#
|
8
|
-
# If a configuration file for compass exists, it will be read in and
|
9
|
-
# the project's configuration values will already be set on the config
|
10
|
-
# object.
|
11
|
-
#
|
12
|
-
# For example:
|
13
|
-
#
|
14
|
-
# module MyApp
|
15
|
-
# class Application < Rails::Application
|
16
|
-
# config.compass.line_comments = !Rails.env.production?
|
17
|
-
# config.compass.fonts_dir = "app/assets/fonts"
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# It is suggested that you create a compass configuration file if you
|
22
|
-
# want a quicker boot time when using the compass command line tool.
|
23
|
-
#
|
24
|
-
# For more information on available configuration options see:
|
25
|
-
# http://compass-style.org/help/tutorials/configuration-reference/
|
26
|
-
def compass
|
27
|
-
@compass ||= begin
|
28
|
-
data = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
|
29
|
-
config_data
|
30
|
-
else
|
31
|
-
Compass::Configuration::Data.new("rails_config")
|
32
|
-
end
|
33
|
-
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
34
|
-
Compass.add_configuration(:rails)
|
35
|
-
Compass.add_configuration(data)
|
36
|
-
Compass.configuration.on_sprite_saved do |filename|
|
37
|
-
# This is a huge hack based on reading through the sprockets internals.
|
38
|
-
# Sprockets needs an API for adding assets during precompilation.
|
39
|
-
# At a minimum sprockets should provide this API:
|
40
|
-
#
|
41
|
-
# #filename is a path in the asset source directory
|
42
|
-
# Rails.application.assets.new_asset!(filename)
|
43
|
-
#
|
44
|
-
# # logical_path is how devs refer to it, data is the contents of it.
|
45
|
-
# Rails.application.assets.new_asset!(logical_path, data)
|
46
|
-
#
|
47
|
-
# I would also like to select one of the above calls based on whether
|
48
|
-
# the user is precompiling or not:
|
49
|
-
#
|
50
|
-
# Rails.application.assets.precompiling? #=> true or false
|
51
|
-
#
|
52
|
-
# But even the above is not an ideal API. The issue is that compass sprites need to
|
53
|
-
# avoid generation if the sprite file is already generated (which can be quite time
|
54
|
-
# consuming). To do this, compass has it's own uniqueness hash based on the user's
|
55
|
-
# inputs instead of being based on the file contents. So if we could provide our own
|
56
|
-
# hash or some metadata that is opaque to sprockets that could be read from the
|
57
|
-
# asset's attributes, we could avoid cluttering the assets directory with generated
|
58
|
-
# sprites and always just use the logical_path + data version of the api.
|
59
|
-
if Rails.application.config.assets.digest && # if digesting is enabled
|
60
|
-
caller.grep(%r{/sprockets/rails/task.rb}).any? && #OMG HAX - check if we're being precompiled
|
61
|
-
Compass.configuration.generated_images_path[Compass.configuration.images_path.to_s] # if the generated images path is not in the assets images directory, we don't have to do these backflips
|
62
|
-
|
63
|
-
# Clear entries in Hike::Index for this sprite's directory.
|
64
|
-
# This makes sure the asset can be found by find_assets
|
65
|
-
Rails.application.assets.send(:trail).instance_variable_get(:@entries).delete(File.dirname(filename))
|
66
|
-
|
67
|
-
pathname = Pathname.new(filename)
|
68
|
-
logical_path = pathname.relative_path_from(Pathname.new(Compass.configuration.images_path))
|
69
|
-
asset = Rails.application.assets.find_asset(logical_path)
|
70
|
-
target = File.join(Rails.public_path, Rails.application.config.assets.prefix, asset.digest_path)
|
71
|
-
|
72
|
-
# Adds the asset to the manifest file.
|
73
|
-
|
74
|
-
manifest = ActionView::Base.assets_manifest
|
75
|
-
manifest.assets[logical_path.to_s] = asset.digest_path
|
76
|
-
|
77
|
-
|
78
|
-
# Adds the fingerprinted asset to the public directory
|
79
|
-
FileUtils.mkdir_p File.dirname(target)
|
80
|
-
asset.write_to target
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|
84
|
-
data
|
85
|
-
end
|
86
|
-
@compass
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
1
|
module CompassRails
|
91
2
|
class Railtie < Rails::Railtie
|
92
3
|
|
93
4
|
initializer "compass.initialize_rails", :group => :all do |app|
|
5
|
+
require 'compass'
|
94
6
|
require 'compass-rails/patches/4_0'
|
95
7
|
# Configure compass for use within rails, and provide the project configuration
|
96
8
|
# that came via the rails boot process.
|
@@ -98,5 +10,47 @@ module CompassRails
|
|
98
10
|
Compass.discover_extensions!
|
99
11
|
CompassRails.configure_rails!(app)
|
100
12
|
end
|
13
|
+
|
14
|
+
config.compass = begin
|
15
|
+
@compass ||= begin
|
16
|
+
data = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
|
17
|
+
config_data
|
18
|
+
else
|
19
|
+
Compass::Configuration::Data.new("rails_config")
|
20
|
+
end
|
21
|
+
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
22
|
+
Compass.add_configuration(:rails)
|
23
|
+
Compass.add_configuration(data)
|
24
|
+
Compass.configuration.on_sprite_saved do |filename|
|
25
|
+
if Rails.application.config.assets.digest && # if digesting is enabled
|
26
|
+
caller.grep(%r{/sprockets/rails/task.rb}).any? && #OMG HAX - check if we're being precompiled
|
27
|
+
Compass.configuration.generated_images_path[Compass.configuration.images_path.to_s] # if the generated images path is not in the assets images directory, we don't have to do these backflips
|
28
|
+
|
29
|
+
# Clear entries in Hike::Index for this sprite's directory.
|
30
|
+
# This makes sure the asset can be found by find_assets
|
31
|
+
trail = Rails.application.assets.send(:trail)
|
32
|
+
trail.instance_variable_get(:@entries).delete(File.dirname(filename))
|
33
|
+
trail.instance_variable_get(:@stats).delete(filename)
|
34
|
+
|
35
|
+
pathname = Pathname.new(filename)
|
36
|
+
logical_path = pathname.relative_path_from(Pathname.new(Compass.configuration.images_path))
|
37
|
+
asset = Rails.application.assets.find_asset(logical_path)
|
38
|
+
target = File.join(Rails.public_path, Rails.application.config.assets.prefix, asset.digest_path)
|
39
|
+
|
40
|
+
# Adds the asset to the manifest file.
|
41
|
+
|
42
|
+
manifest = ActionView::Base.assets_manifest
|
43
|
+
manifest.assets[logical_path.to_s] = asset.digest_path
|
44
|
+
|
45
|
+
|
46
|
+
# Adds the fingerprinted asset to the public directory
|
47
|
+
FileUtils.mkdir_p File.dirname(target)
|
48
|
+
asset.write_to target
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
data
|
53
|
+
end
|
54
|
+
end
|
101
55
|
end
|
102
56
|
end
|
@@ -8,29 +8,25 @@ module CompassRails
|
|
8
8
|
RAILS_4_0 = "4.0"
|
9
9
|
RAILS_3_2 = "3.2"
|
10
10
|
RAILS_3_1 = "3.1"
|
11
|
-
RAILS_3 = "3.0"
|
12
11
|
|
13
12
|
WORKING_DIR = File.join(ROOT_PATH, 'rails-temp')
|
14
13
|
|
15
14
|
GEMFILES = {
|
16
15
|
RAILS_4_0 => GEMFILES_DIR.join("rails40.gemfile").to_s,
|
17
16
|
RAILS_3_2 => GEMFILES_DIR.join("rails32.gemfile").to_s,
|
18
|
-
RAILS_3_1 => GEMFILES_DIR.join("rails31.gemfile").to_s
|
19
|
-
RAILS_3 => GEMFILES_DIR.join("rails3.gemfile").to_s
|
17
|
+
RAILS_3_1 => GEMFILES_DIR.join("rails31.gemfile").to_s
|
20
18
|
}
|
21
19
|
|
22
20
|
GENERATOR_OPTIONS = {
|
23
21
|
RAILS_4_0 => ['-q', '-G', '-O', '--skip-bundle'],
|
24
22
|
RAILS_3_2 => ['-q', '-G', '-O', '--skip-bundle'],
|
25
|
-
RAILS_3_1 => ['-q', '-G', '-O', '--skip-bundle']
|
26
|
-
RAILS_3 => ['-q', '-G', '-O', '--skip-bundle']
|
23
|
+
RAILS_3_1 => ['-q', '-G', '-O', '--skip-bundle']
|
27
24
|
}
|
28
25
|
|
29
26
|
GENERATOR_COMMAND = {
|
30
27
|
RAILS_4_0 => 'new',
|
31
28
|
RAILS_3_2 => 'new',
|
32
|
-
RAILS_3_1 => 'new'
|
33
|
-
RAILS_3 => 'new'
|
29
|
+
RAILS_3_1 => 'new'
|
34
30
|
}
|
35
31
|
|
36
32
|
def rails_command(options, version)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
|
2
3
|
class Rails31Test < Test::Unit::TestCase
|
3
4
|
include CompassRails::Test::RailsHelpers
|
4
5
|
|
@@ -35,13 +36,11 @@ class Rails31Test < Test::Unit::TestCase
|
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
38
|
-
|
39
39
|
def test_compass_preferred_syntax
|
40
40
|
within_rails_app('test_railtie', RAILS_VERSION) do |project|
|
41
41
|
project.set_rails('sass.preferred_syntax', :sass)
|
42
42
|
project.run_compass('init')
|
43
43
|
assert project.directory.join('app/assets/stylesheets/screen.css.sass').exist?
|
44
|
-
end
|
44
|
+
end
|
45
45
|
end
|
46
|
-
|
47
|
-
end
|
46
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
|
2
3
|
class Rails32Test < Test::Unit::TestCase
|
3
4
|
include CompassRails::Test::RailsHelpers
|
5
|
+
|
4
6
|
RAILS_VERSION = RAILS_3_2
|
5
7
|
|
6
8
|
def test_rails_app_created
|
@@ -9,7 +11,6 @@ class Rails32Test < Test::Unit::TestCase
|
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
|
-
|
13
14
|
def test_installs_compass
|
14
15
|
within_rails_app('test_railtie', RAILS_VERSION) do |project|
|
15
16
|
project.run_compass('init')
|
@@ -40,7 +41,6 @@ class Rails32Test < Test::Unit::TestCase
|
|
40
41
|
project.set_rails('sass.preferred_syntax', :sass)
|
41
42
|
project.run_compass('init')
|
42
43
|
assert project.directory.join('app/assets/stylesheets/screen.css.sass').exist?
|
43
|
-
end
|
44
|
+
end
|
44
45
|
end
|
45
|
-
|
46
|
-
end
|
46
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
|
2
3
|
class Rails40Test < Test::Unit::TestCase
|
3
4
|
include CompassRails::Test::RailsHelpers
|
5
|
+
|
4
6
|
RAILS_VERSION = RAILS_4_0
|
5
7
|
|
6
8
|
def test_rails_app_created
|
@@ -9,7 +11,6 @@ class Rails40Test < Test::Unit::TestCase
|
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
|
-
|
13
14
|
def test_installs_compass
|
14
15
|
within_rails_app('test_railtie', RAILS_VERSION) do |project|
|
15
16
|
project.run_compass('init')
|
@@ -42,5 +43,4 @@ class Rails40Test < Test::Unit::TestCase
|
|
42
43
|
assert project.directory.join('app/assets/stylesheets/screen.css.sass').exist?
|
43
44
|
end
|
44
45
|
end
|
45
|
-
|
46
46
|
end
|
data/test/test_helper.rb
CHANGED
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: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Davis
|
@@ -10,36 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-07-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ! '>='
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: 0.12.2
|
21
|
-
prerelease: false
|
22
16
|
name: compass
|
23
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
24
18
|
requirements:
|
25
|
-
- -
|
19
|
+
- - ">="
|
26
20
|
- !ruby/object:Gem::Version
|
27
21
|
version: 0.12.2
|
28
22
|
type: :runtime
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - <=
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 2.11.0
|
35
23
|
prerelease: false
|
36
|
-
name: sprockets
|
37
24
|
version_requirements: !ruby/object:Gem::Requirement
|
38
25
|
requirements:
|
39
|
-
- -
|
26
|
+
- - ">="
|
40
27
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
42
|
-
type: :runtime
|
28
|
+
version: 0.12.2
|
43
29
|
description: Integrate Compass into Rails 3.0 and up.
|
44
30
|
email:
|
45
31
|
- jetviper21@gmail.com
|
@@ -49,8 +35,8 @@ executables: []
|
|
49
35
|
extensions: []
|
50
36
|
extra_rdoc_files: []
|
51
37
|
files:
|
52
|
-
- .gitignore
|
53
|
-
- .travis.yml
|
38
|
+
- ".gitignore"
|
39
|
+
- ".travis.yml"
|
54
40
|
- Appraisals
|
55
41
|
- Gemfile
|
56
42
|
- Guardfile
|
@@ -59,14 +45,11 @@ files:
|
|
59
45
|
- Rakefile
|
60
46
|
- changelog.markdown
|
61
47
|
- compass-rails.gemspec
|
62
|
-
- gemfiles/rails3.gemfile
|
63
48
|
- gemfiles/rails31.gemfile
|
64
49
|
- gemfiles/rails32.gemfile
|
65
50
|
- gemfiles/rails40.gemfile
|
66
51
|
- lib/compass-rails.rb
|
67
52
|
- lib/compass-rails/configuration.rb
|
68
|
-
- lib/compass-rails/configuration/asset_pipeline.rb
|
69
|
-
- lib/compass-rails/configuration/default.rb
|
70
53
|
- lib/compass-rails/installer.rb
|
71
54
|
- lib/compass-rails/patches.rb
|
72
55
|
- lib/compass-rails/patches/3_1.rb
|
@@ -77,7 +60,6 @@ files:
|
|
77
60
|
- lib/compass-rails/patches/sprite_importer.rb
|
78
61
|
- lib/compass-rails/patches/static_compiler.rb
|
79
62
|
- lib/compass-rails/railties.rb
|
80
|
-
- lib/compass-rails/railties/3_0.rb
|
81
63
|
- lib/compass-rails/railties/3_1.rb
|
82
64
|
- lib/compass-rails/railties/4_0.rb
|
83
65
|
- lib/compass-rails/version.rb
|
@@ -89,10 +71,8 @@ files:
|
|
89
71
|
- test/helpers/rails_helper.rb
|
90
72
|
- test/helpers/rails_project.rb
|
91
73
|
- test/integrations/.gitkeep
|
92
|
-
- test/integrations/rails3_test.rb
|
93
74
|
- test/integrations/rails_31_test.rb
|
94
75
|
- test/integrations/rails_32_test.rb
|
95
|
-
- test/integrations/rails_32_without_pipeline_test.rb
|
96
76
|
- test/integrations/rails_40_test.rb
|
97
77
|
- test/test_helper.rb
|
98
78
|
- test/units/.gitkeep
|
@@ -106,17 +86,17 @@ require_paths:
|
|
106
86
|
- lib
|
107
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
88
|
requirements:
|
109
|
-
- -
|
89
|
+
- - ">="
|
110
90
|
- !ruby/object:Gem::Version
|
111
91
|
version: '0'
|
112
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
93
|
requirements:
|
114
|
-
- -
|
94
|
+
- - ">="
|
115
95
|
- !ruby/object:Gem::Version
|
116
96
|
version: '0'
|
117
97
|
requirements: []
|
118
98
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
99
|
+
rubygems_version: 2.2.2
|
120
100
|
signing_key:
|
121
101
|
specification_version: 4
|
122
102
|
summary: Integrate Compass into Rails 3.0 and up.
|
@@ -128,10 +108,9 @@ test_files:
|
|
128
108
|
- test/helpers/rails_helper.rb
|
129
109
|
- test/helpers/rails_project.rb
|
130
110
|
- test/integrations/.gitkeep
|
131
|
-
- test/integrations/rails3_test.rb
|
132
111
|
- test/integrations/rails_31_test.rb
|
133
112
|
- test/integrations/rails_32_test.rb
|
134
|
-
- test/integrations/rails_32_without_pipeline_test.rb
|
135
113
|
- test/integrations/rails_40_test.rb
|
136
114
|
- test/test_helper.rb
|
137
115
|
- test/units/.gitkeep
|
116
|
+
has_rdoc:
|
data/gemfiles/rails3.gemfile
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "rb-fsevent", :require=>false
|
6
|
-
gem "ruby_gntp", :require=>false
|
7
|
-
gem "guard"
|
8
|
-
gem "guard-test"
|
9
|
-
gem "rails", "3.0.11"
|
10
|
-
|
11
|
-
group :assets do
|
12
|
-
gem "compass", "~> 0.13.alpha.0"
|
13
|
-
gem "compass-rails", :path=>".."
|
14
|
-
gem "compass-blueprint"
|
15
|
-
end
|
16
|
-
group :test do
|
17
|
-
gem "mocha"
|
18
|
-
gem "appraisal", :git=>"https://github.com/scottdavis/appraisal.git"
|
19
|
-
gem "rainbow"
|
20
|
-
end
|
21
|
-
|
22
|
-
gemspec :path=>"../"
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module CompassRails
|
2
|
-
module Configuration
|
3
|
-
module AssetPipeline
|
4
|
-
|
5
|
-
def default_images_dir
|
6
|
-
File.join("app", "assets", "images")
|
7
|
-
end
|
8
|
-
|
9
|
-
def default_fonts_dir
|
10
|
-
File.join("app", "assets", "fonts")
|
11
|
-
end
|
12
|
-
|
13
|
-
def default_javascripts_dir
|
14
|
-
File.join("app", "assets", "javascripts")
|
15
|
-
end
|
16
|
-
|
17
|
-
def default_css_dir
|
18
|
-
File.join('public', CompassRails.prefix)
|
19
|
-
end
|
20
|
-
|
21
|
-
def default_http_path
|
22
|
-
File.join(CompassRails.prefix)
|
23
|
-
end
|
24
|
-
|
25
|
-
def default_http_images_path
|
26
|
-
"#{top_level.http_path}"
|
27
|
-
end
|
28
|
-
|
29
|
-
def default_http_javascripts_path
|
30
|
-
"#{top_level.http_path}"
|
31
|
-
end
|
32
|
-
|
33
|
-
def default_http_fonts_path
|
34
|
-
"#{top_level.http_path}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def default_http_stylesheets_path
|
38
|
-
"#{top_level.http_path}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def default_preferred_syntax
|
42
|
-
::Rails.application.config.sass.preferred_syntax rescue nil
|
43
|
-
end
|
44
|
-
|
45
|
-
def default_sprite_load_path
|
46
|
-
CompassRails.sprockets.paths
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
module CompassRails
|
2
|
-
module Configuration
|
3
|
-
module Default
|
4
|
-
|
5
|
-
def project_type_without_default
|
6
|
-
:rails
|
7
|
-
end
|
8
|
-
|
9
|
-
def default_sass_dir
|
10
|
-
File.join("app", "assets", "stylesheets")
|
11
|
-
end
|
12
|
-
|
13
|
-
def default_css_dir
|
14
|
-
File.join("public", "stylesheets")
|
15
|
-
end
|
16
|
-
|
17
|
-
def default_images_dir
|
18
|
-
File.join("public", "images")
|
19
|
-
end
|
20
|
-
|
21
|
-
def default_fonts_dir
|
22
|
-
File.join("public", "fonts")
|
23
|
-
end
|
24
|
-
|
25
|
-
def default_javascripts_dir
|
26
|
-
File.join("public", "javascripts")
|
27
|
-
end
|
28
|
-
|
29
|
-
def default_http_images_path
|
30
|
-
# Relies on the fact that this will be loaded after the "normal"
|
31
|
-
# defaults, so that method_missing finds http_root_relative
|
32
|
-
http_root_relative "images"
|
33
|
-
end
|
34
|
-
|
35
|
-
def default_http_generated_images_path
|
36
|
-
# Relies on the fact that this will be loaded after the "normal"
|
37
|
-
# defaults, so that method_missing finds http_root_relative
|
38
|
-
http_root_relative "images"
|
39
|
-
end
|
40
|
-
|
41
|
-
def default_http_javascripts_path
|
42
|
-
http_root_relative "javascripts"
|
43
|
-
end
|
44
|
-
|
45
|
-
def default_http_fonts_path
|
46
|
-
http_root_relative "fonts"
|
47
|
-
end
|
48
|
-
|
49
|
-
def default_http_stylesheets_path
|
50
|
-
http_root_relative "stylesheets"
|
51
|
-
end
|
52
|
-
|
53
|
-
def default_extensions_dir
|
54
|
-
File.join("vendor", "plugins", "compass_extensions")
|
55
|
-
end
|
56
|
-
|
57
|
-
def default_cache_dir
|
58
|
-
File.join("tmp", "sass-cache")
|
59
|
-
end
|
60
|
-
|
61
|
-
def default_project_path
|
62
|
-
project_path = CompassRails.root
|
63
|
-
end
|
64
|
-
|
65
|
-
def default_http_path
|
66
|
-
"/" # XXX Where is/was this stored in the Rails config?
|
67
|
-
end
|
68
|
-
|
69
|
-
def default_environment
|
70
|
-
CompassRails.env
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
#3.0.11
|
2
|
-
require 'compass'
|
3
|
-
require 'rails'
|
4
|
-
|
5
|
-
class Rails::Railtie::Configuration
|
6
|
-
# Adds compass configuration accessor to the application configuration.
|
7
|
-
#
|
8
|
-
# If a configuration file for compass exists, it will be read in and
|
9
|
-
# the project's configuration values will already be set on the config
|
10
|
-
# object.
|
11
|
-
#
|
12
|
-
# For example:
|
13
|
-
#
|
14
|
-
# module MyApp
|
15
|
-
# class Application < Rails::Application
|
16
|
-
# config.compass.line_comments = !Rails.env.production?
|
17
|
-
# config.compass.fonts_dir = "app/assets/fonts"
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# It is suggested that you create a compass configuration file if you
|
22
|
-
# want a quicker boot time when using the compass command line tool.
|
23
|
-
#
|
24
|
-
# For more information on available configuration options see:
|
25
|
-
# http://compass-style.org/help/tutorials/configuration-reference/
|
26
|
-
def compass
|
27
|
-
@compass ||= begin
|
28
|
-
data = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
|
29
|
-
config_data
|
30
|
-
else
|
31
|
-
Compass::Configuration::Data.new("project")
|
32
|
-
end
|
33
|
-
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
34
|
-
data
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
module CompassRails
|
40
|
-
class Railtie < Rails::Railtie
|
41
|
-
|
42
|
-
initializer "compass.initialize_rails" do |app|
|
43
|
-
# Configure compass for use within rails, and provide the project configuration
|
44
|
-
# that came via the rails boot process.
|
45
|
-
CompassRails.initialize!(app.config.compass)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
class Rails3Test < Test::Unit::TestCase
|
3
|
-
include CompassRails::Test::RailsHelpers
|
4
|
-
RAILS_VERSION = RAILS_3
|
5
|
-
|
6
|
-
def test_rails_app_created
|
7
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
8
|
-
assert project.boots?
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_installs_compass
|
13
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
14
|
-
project.run_compass('init')
|
15
|
-
assert project.has_config?
|
16
|
-
assert project.has_screen_file?
|
17
|
-
assert project.has_compass_import?
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_compass_compile
|
22
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
23
|
-
project.run_compass('init')
|
24
|
-
project.run_compass('compile')
|
25
|
-
assert project.directory.join('public/stylesheets/screen.css').exist?
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_install_blueprint
|
30
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
31
|
-
project.run_compass('init')
|
32
|
-
project.run_compass('install blueprint --force')
|
33
|
-
assert project.directory.join('app/assets/stylesheets/partials').directory?
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
class Rails32WithoutPipelineTest < Test::Unit::TestCase
|
3
|
-
include CompassRails::Test::RailsHelpers
|
4
|
-
RAILS_VERSION = RAILS_3_2
|
5
|
-
|
6
|
-
def test_rails_app_created
|
7
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
8
|
-
assert project.boots?
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_installs_compass
|
13
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
14
|
-
project.run_compass('init')
|
15
|
-
assert project.has_config?
|
16
|
-
assert project.has_screen_file?
|
17
|
-
assert project.has_compass_import?
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_compass_compile
|
22
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
23
|
-
project.run_compass('init')
|
24
|
-
project.run_compass('compile')
|
25
|
-
assert project.directory.join('public/stylesheets/screen.css').exist?
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_install_blueprint
|
30
|
-
within_rails_app('test_railtie', RAILS_VERSION, false) do |project|
|
31
|
-
project.run_compass('init')
|
32
|
-
project.run_compass('install blueprint --force')
|
33
|
-
assert project.directory.join('app/assets/stylesheets/partials').directory?
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|