compass-rails 1.0.0.rc.3 → 1.0.0.rc.4
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.
- data/README.md +10 -4
- data/gemfiles/rails2.gemfile.lock +1 -1
- data/gemfiles/rails3.gemfile.lock +1 -1
- data/gemfiles/rails31.gemfile.lock +1 -1
- data/gemfiles/rails32.gemfile.lock +1 -1
- data/lib/compass-rails.rb +22 -2
- data/lib/compass-rails/configuration/3_1.rb +0 -4
- data/lib/compass-rails/patches/3_1.rb +3 -1
- data/lib/compass-rails/patches/sprite_importer.rb +2 -2
- data/lib/compass-rails/patches/static_compiler.rb +12 -0
- data/lib/compass-rails/railties/3_1.rb +21 -13
- data/lib/compass-rails/version.rb +1 -1
- metadata +5 -4
data/README.md
CHANGED
@@ -15,6 +15,7 @@ Add the `compass-rails` gem line to a group called `:assets` in your application
|
|
15
15
|
|
16
16
|
```ruby
|
17
17
|
group :assets do
|
18
|
+
gem 'sass-rails' # if running rails 3.1 or greater
|
18
19
|
gem 'compass-rails'
|
19
20
|
end
|
20
21
|
```
|
@@ -46,10 +47,10 @@ older versions of rails that do not use the assets pipeline.
|
|
46
47
|
If you have your stylesheets already in `app/stylesheets`, you have two choices:
|
47
48
|
|
48
49
|
1. Move your stylesheets to `app/assets/stylesheets`.
|
49
|
-
2. Configure your project to look in
|
50
|
-
`config.compass.sass_dir =
|
51
|
-
|
52
|
-
compass configuration file.
|
50
|
+
2. Configure your project to look in the **legacy location** of
|
51
|
+
`app/stylesheets` by setting `config.compass.sass_dir =
|
52
|
+
"app/stylesheets"` in your rails configuration or by setting
|
53
|
+
`sass_dir = "app/stylesheets"` in your compass configuration file.
|
53
54
|
|
54
55
|
## Configuration
|
55
56
|
|
@@ -138,6 +139,11 @@ doing things like requiring. These **must not** be used with Sass files.
|
|
138
139
|
Instead use the sass `@import` directive. In rails projects, the
|
139
140
|
`@import` directive is configured to work with sprockets via `sass-rails`. For more information on importing in rails 3.1 or greater see the [Sass-Rails REAME](https://github.com/rails/sass-rails/blob/master/README.markdown)
|
140
141
|
|
142
|
+
## Rails 3.1 Caveats
|
143
|
+
|
144
|
+
There was a bug in rails 3.1.0 -- please make sure you are running 3.1.1
|
145
|
+
at the earliest for this version of rails.
|
146
|
+
|
141
147
|
## Rails 3.0 Caveats
|
142
148
|
|
143
149
|
If you want rails to compile your stylesheets (instead of using the
|
data/lib/compass-rails.rb
CHANGED
@@ -177,8 +177,18 @@ module CompassRails
|
|
177
177
|
|
178
178
|
def configure_rails!(app)
|
179
179
|
return unless app.config.respond_to?(:sass)
|
180
|
-
app.config.
|
181
|
-
|
180
|
+
sass_config = app.config.sass
|
181
|
+
compass_config = app.config.compass
|
182
|
+
|
183
|
+
sass_config.load_paths.concat(compass_config.sass_load_paths)
|
184
|
+
|
185
|
+
{ :output_style => :style,
|
186
|
+
:line_comments => :line_comments,
|
187
|
+
:cache => :cache,
|
188
|
+
:disable_warnings => :quiet,
|
189
|
+
:preferred_syntax => :preferred_syntax
|
190
|
+
}.each do |compass_option, sass_option|
|
191
|
+
set_maybe sass_config, compass_config, sass_option, compass_option
|
182
192
|
end
|
183
193
|
end
|
184
194
|
|
@@ -198,6 +208,16 @@ module CompassRails
|
|
198
208
|
rails_config.respond_to?(:assets) && rails_config.assets.try(:enabled)
|
199
209
|
end
|
200
210
|
|
211
|
+
private
|
212
|
+
|
213
|
+
# sets the sass config value only if the corresponding compass-based setting
|
214
|
+
# has been explicitly set by the user.
|
215
|
+
def set_maybe(sass_config, compass_config, sass_option, compass_option)
|
216
|
+
if compass_value = compass_config.send(:"#{compass_option}_without_default")
|
217
|
+
sass_config.send(:"#{sass_option}=", compass_value)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
201
221
|
end
|
202
222
|
|
203
223
|
Compass::AppIntegration.register(:rails, "::CompassRails")
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'compass-rails/patches/static_compiler'
|
2
|
+
|
1
3
|
module Sass::Script::Functions
|
2
4
|
def generated_image_url(path, only_path = nil)
|
3
5
|
asset_url(path, Sass::Script::String.new("image"))
|
@@ -25,4 +27,4 @@ end
|
|
25
27
|
# Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
|
26
28
|
class Sass::Script::Functions::EvaluationContext
|
27
29
|
include Sass::Script::Functions
|
28
|
-
end
|
30
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'sprockets/static_compiler'
|
2
|
+
|
3
|
+
module Sprockets
|
4
|
+
class StaticCompiler
|
5
|
+
cattr_accessor :generated_sprites
|
6
|
+
self.generated_sprites = {}
|
7
|
+
def write_manifest_with_sprites(manifest)
|
8
|
+
write_manifest_without_sprites(manifest.merge(self.class.generated_sprites))
|
9
|
+
end
|
10
|
+
alias_method_chain :write_manifest, :sprites
|
11
|
+
end
|
12
|
+
end
|
@@ -31,8 +31,8 @@ class Rails::Railtie::Configuration
|
|
31
31
|
Compass::Configuration::Data.new("rails_config")
|
32
32
|
end
|
33
33
|
data.project_type = :rails # Forcing this makes sure all the rails defaults will be loaded.
|
34
|
-
|
35
|
-
Compass.
|
34
|
+
Compass.add_configuration(:rails)
|
35
|
+
Compass.add_configuration(data)
|
36
36
|
Compass.configuration.on_sprite_saved do |filename|
|
37
37
|
# This is a huge hack based on reading through the sprockets internals.
|
38
38
|
# Sprockets needs an API for adding assets during precompilation.
|
@@ -56,18 +56,26 @@ class Rails::Railtie::Configuration
|
|
56
56
|
# hash or some metadata that is opaque to sprockets that could be read from the
|
57
57
|
# asset's attributes, we could avoid cluttering the assets directory with generated
|
58
58
|
# sprites and always just use the logical_path + data version of the api.
|
59
|
-
if Rails.application.config.assets.
|
60
|
-
|
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
|
+
|
61
67
|
pathname = Pathname.new(filename)
|
62
|
-
logical_path =
|
63
|
-
|
64
|
-
|
65
|
-
|
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
|
66
78
|
|
67
|
-
target = Pathname.new(File.join(Rails.public_path, Rails.application.config.assets.prefix))
|
68
|
-
asset = Rails.application.assets.find_asset(logical_path)
|
69
|
-
filename = target.join(asset.digest_path)
|
70
|
-
asset.write_to(filename)
|
71
79
|
end
|
72
80
|
end
|
73
81
|
data
|
@@ -88,4 +96,4 @@ module CompassRails
|
|
88
96
|
CompassRails.configure_rails!(app)
|
89
97
|
end
|
90
98
|
end
|
91
|
-
end
|
99
|
+
end
|
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: 1.0.0.rc.
|
4
|
+
version: 1.0.0.rc.4
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-03-12 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: compass
|
17
|
-
requirement: &
|
17
|
+
requirement: &70331335147980 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: 0.12.rc.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70331335147980
|
26
26
|
description: Integrate Compass into Rails 2.3 and up.
|
27
27
|
email:
|
28
28
|
- jetviper21@gmail.com
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- lib/compass-rails/patches/3_1.rb
|
58
58
|
- lib/compass-rails/patches/importer.rb
|
59
59
|
- lib/compass-rails/patches/sprite_importer.rb
|
60
|
+
- lib/compass-rails/patches/static_compiler.rb
|
60
61
|
- lib/compass-rails/railties.rb
|
61
62
|
- lib/compass-rails/railties/2_3.rb
|
62
63
|
- lib/compass-rails/railties/3_0.rb
|