compass-rails 1.1.7 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://travis-ci.org/Compass/compass-rails.png?branch=
|
5
|
+
[![Build Status](https://travis-ci.org/Compass/compass-rails.png?branch=master)](https://travis-ci.org/Compass/compass-rails)
|
6
6
|
[![Code Climate](https://codeclimate.com/github/Compass/compass-rails.png)](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
|