compass-rails 1.0.0.rc.1
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/.gitignore +18 -0
- data/.travis.yml +5 -0
- data/Appraisals +17 -0
- data/Gemfile +22 -0
- data/Guardfile +9 -0
- data/LICENSE +22 -0
- data/README.md +191 -0
- data/Rakefile +34 -0
- data/compass-rails.gemspec +21 -0
- data/gemfiles/rails2.gemfile +21 -0
- data/gemfiles/rails2.gemfile.lock +87 -0
- data/gemfiles/rails3.gemfile +21 -0
- data/gemfiles/rails3.gemfile.lock +134 -0
- data/gemfiles/rails31.gemfile +22 -0
- data/gemfiles/rails31.gemfile.lock +151 -0
- data/gemfiles/rails32.gemfile +22 -0
- data/gemfiles/rails32.gemfile.lock +148 -0
- data/lib/compass-rails.rb +207 -0
- data/lib/compass-rails/configuration.rb +1 -0
- data/lib/compass-rails/configuration/3_1.rb +51 -0
- data/lib/compass-rails/configuration/default.rb +75 -0
- data/lib/compass-rails/installer.rb +30 -0
- data/lib/compass-rails/patches.rb +6 -0
- data/lib/compass-rails/patches/3_1.rb +28 -0
- data/lib/compass-rails/patches/importer.rb +26 -0
- data/lib/compass-rails/patches/sprite_importer.rb +38 -0
- data/lib/compass-rails/railties.rb +11 -0
- data/lib/compass-rails/railties/2_3.rb +56 -0
- data/lib/compass-rails/railties/3_0.rb +48 -0
- data/lib/compass-rails/railties/3_1.rb +90 -0
- data/lib/compass-rails/version.rb +5 -0
- data/lib/compass/app_integration/rails.rb +10 -0
- data/test/fixtures/.gitkeep +0 -0
- data/test/helpers/command_helper.rb +120 -0
- data/test/helpers/debug_helper.rb +12 -0
- data/test/helpers/file_helper.rb +53 -0
- data/test/helpers/rails_helper.rb +65 -0
- data/test/helpers/rails_project.rb +186 -0
- data/test/integrations/.gitkeep +0 -0
- data/test/integrations/rails3_test.rb +37 -0
- data/test/integrations/rails_23_test.rb +28 -0
- data/test/integrations/rails_31_test.rb +47 -0
- data/test/integrations/rails_32_test.rb +46 -0
- data/test/test_helper.rb +15 -0
- data/test/units/.gitkeep +0 -0
- metadata +160 -0
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Appraisals
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
appraise "rails2" do
|
2
|
+
gem "rails", "2.3.14"
|
3
|
+
end
|
4
|
+
|
5
|
+
appraise "rails3" do
|
6
|
+
gem "rails", "3.0.11"
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise "rails31" do
|
10
|
+
gem "rails", "3.1.3"
|
11
|
+
gem "sass-rails"
|
12
|
+
end
|
13
|
+
|
14
|
+
appraise "rails32" do
|
15
|
+
gem "rails", "~> 3.2"
|
16
|
+
gem "sass-rails"
|
17
|
+
end
|
data/Gemfile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in compass-rails.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
group :assets do
|
7
|
+
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git', :branch => :master
|
8
|
+
gem 'compass-rails', :path => '.'
|
9
|
+
end
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem 'mocha'
|
13
|
+
gem "appraisal", :git => 'git://github.com/scottdavis/appraisal.git'
|
14
|
+
gem 'rainbow'
|
15
|
+
end
|
16
|
+
|
17
|
+
unless ENV["CI"]
|
18
|
+
gem 'rb-fsevent', :require => false
|
19
|
+
gem 'ruby_gntp', :require => false
|
20
|
+
gem 'guard'
|
21
|
+
gem 'guard-test'
|
22
|
+
end
|
data/Guardfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2011 Scott Davis
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
# CompassRails
|
2
|
+
|
3
|
+
Compass rails is an adapter for the [Compass Stylesheet Authoring
|
4
|
+
Framework](http://compass-style.org) for [Ruby on Rails](http://http://rubyonrails.org/).
|
5
|
+
|
6
|
+
Since Compass v0.12, this adapter is the only way to install compass
|
7
|
+
into your rails application.
|
8
|
+
|
9
|
+
This adapter supports rails versions 2.3 and greater. Rails 2.3 and 3.0 users
|
10
|
+
please read the caviats below.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add the `compass-rails` gem line to a group called `:assets` in your application's Gemfile (Rails 3.1+ users should already have the `:assets` group):
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
group :assets do
|
18
|
+
gem 'compass-rails'
|
19
|
+
end
|
20
|
+
```
|
21
|
+
|
22
|
+
If you are using any Compass extensions, add them to this group in your
|
23
|
+
Gemfile.
|
24
|
+
|
25
|
+
And then execute:
|
26
|
+
|
27
|
+
$ bundle
|
28
|
+
|
29
|
+
To set up your project with starter stylesheets and a configuration
|
30
|
+
file:
|
31
|
+
|
32
|
+
$ bundle exec compass init
|
33
|
+
|
34
|
+
If using a compass-based framework (like [susy](http://susy.oddbird.net/) or [blueprint](http://compass-style.org/reference/blueprint/)) then you can use the `--using` option to set thi:
|
35
|
+
|
36
|
+
$ bundle exec compass init --using blueprint
|
37
|
+
|
38
|
+
Note that the `compass init` step is optional if you have a project running Rails 3.0 or greater.
|
39
|
+
|
40
|
+
## Upgrading existing rails projects using Compass to CompassRails
|
41
|
+
|
42
|
+
First and foremost, follow the installation instructions above.
|
43
|
+
|
44
|
+
CompassRails uses the rails convention for stylesheet locations even in
|
45
|
+
older versions of rails that do not use the assets pipeline.
|
46
|
+
If you have your stylesheets already in `app/stylesheets`, you have two choices:
|
47
|
+
|
48
|
+
1. Move your stylesheets to `app/assets/stylesheets`.
|
49
|
+
2. Configure your project to look in `app/assets/stylesheets` by setting
|
50
|
+
`config.compass.sass_dir = "app/stylesheets"` in your rails
|
51
|
+
configuration or by setting `sass_dir = "app/stylesheets"` in your
|
52
|
+
compass configuration file.
|
53
|
+
|
54
|
+
## Configuration
|
55
|
+
|
56
|
+
If you have a compass configuration file (recommended) then you can
|
57
|
+
use the [Compass configuration
|
58
|
+
reference](http://compass-style.org/help/tutorials/configuration-reference/)
|
59
|
+
as is. If you choose to configure compass from your rails configuration
|
60
|
+
files, then you should understand that the compass configuration
|
61
|
+
options explained there will be methods and properties on the `config.compass`
|
62
|
+
configuration object exposed to rails within any configuration block.
|
63
|
+
|
64
|
+
## Usage
|
65
|
+
|
66
|
+
### Developing with Rails-based Compilation
|
67
|
+
|
68
|
+
By default, your sass files in `app/assets/stylesheets` will be
|
69
|
+
automatically compiled by the the [`Sass::Plugin`](http://sass-lang.com/docs/yardoc/Sass/Plugin.html) or the [Rails asset
|
70
|
+
pipeline](http://guides.rubyonrails.org/asset_pipeline.html) depending on the version of rails that you use.
|
71
|
+
|
72
|
+
When using this approach you will need to reload your webpage in order
|
73
|
+
to trigger a recompile of your stylesheets.
|
74
|
+
|
75
|
+
### Developing with the Compass watcher
|
76
|
+
|
77
|
+
When using the Compass watcher to update your stylesheets, your
|
78
|
+
stylesheets are recompiled as soon as you save your Sass files. In this
|
79
|
+
mode, compiled stylesheets will be written to your project's public
|
80
|
+
folder and therefore will be served directly by your project's web
|
81
|
+
server -- superceding the normal rails compilation.
|
82
|
+
|
83
|
+
In this mode, rails 3.0 or earlier users will experience a slight
|
84
|
+
speed up by disabling the `Sass::Plugin` like so:
|
85
|
+
|
86
|
+
```ruby
|
87
|
+
config.after_initialize do
|
88
|
+
Sass::Plugin.options[:never_update] = true
|
89
|
+
end
|
90
|
+
```
|
91
|
+
|
92
|
+
To return to using the Rails-based compilation mode, simply delete
|
93
|
+
the compiled stylesheets and remove any configuration changes.
|
94
|
+
|
95
|
+
### Compiling for Production
|
96
|
+
|
97
|
+
If using the Rails asset pipeline run:
|
98
|
+
|
99
|
+
$ rake assets:precompile
|
100
|
+
|
101
|
+
If not using the asset pipeline run:
|
102
|
+
|
103
|
+
$ bundle exec compass compile -e production --force
|
104
|
+
|
105
|
+
It is suggested that you compile your stylesheets as part of the deploy
|
106
|
+
or build process. However, some people choose to check in their compiled
|
107
|
+
stylesheets.
|
108
|
+
|
109
|
+
### Installing Compass extensions
|
110
|
+
|
111
|
+
Step 1: If the extension is a rubygem, Add it to your Gemfile in the
|
112
|
+
`:assets` group and run the `bundle` command to install it.
|
113
|
+
If the extension is a zip file, unzip it into the
|
114
|
+
`vendor/plugins/compass_extensions` directory of your project.
|
115
|
+
|
116
|
+
Step 2: Install the extension's assets: `bundle exec compass install
|
117
|
+
<extension/template>`
|
118
|
+
|
119
|
+
For example, if you want to use susy.
|
120
|
+
|
121
|
+
```ruby
|
122
|
+
# Gemfile
|
123
|
+
group :assets do
|
124
|
+
gem 'compass-rails'
|
125
|
+
gem 'compass-susy-plugin'
|
126
|
+
end
|
127
|
+
```
|
128
|
+
|
129
|
+
then run:
|
130
|
+
|
131
|
+
$ bundle
|
132
|
+
$ bundle exec compass install susy
|
133
|
+
|
134
|
+
### Notes On Sprockets Directives
|
135
|
+
|
136
|
+
Sprockets, used by the rails asset pipeline, provides directives for
|
137
|
+
doing things like requiring. These **must not** be used with Sass files.
|
138
|
+
Instead use the sass `@import` directive. In rails projects, the
|
139
|
+
`@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
|
+
## Rails 3.0 Caviats
|
142
|
+
|
143
|
+
If you want rails to compile your stylesheets (instead of using the
|
144
|
+
compass watcher) you need to edit `config/application.rb` and change:
|
145
|
+
|
146
|
+
```ruby
|
147
|
+
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
148
|
+
```
|
149
|
+
|
150
|
+
to this:
|
151
|
+
|
152
|
+
```ruby
|
153
|
+
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
|
154
|
+
```
|
155
|
+
|
156
|
+
## Rails 2.3 Caviats
|
157
|
+
|
158
|
+
Compass requires that your rails 2.3 project is using Bundler to manage
|
159
|
+
your rubygems. If you haven't yet set up your rails 2.3 project to use Bundler,
|
160
|
+
please do so prior to upgrading. [Bundler installation guide for rails
|
161
|
+
2.3](http://gembundler.com/rails23.html).
|
162
|
+
|
163
|
+
After following the instructions there, if you want rails to compile
|
164
|
+
your stylesheets (instead of using the compass watcher) you need
|
165
|
+
edit `config/boot.rb` and change this:
|
166
|
+
|
167
|
+
```ruby
|
168
|
+
Rails::Initializer.class_eval do
|
169
|
+
def load_gems
|
170
|
+
@bundler_loaded ||= Bundler.require :default, Rails.env
|
171
|
+
end
|
172
|
+
end
|
173
|
+
```
|
174
|
+
|
175
|
+
To this:
|
176
|
+
|
177
|
+
```ruby
|
178
|
+
Rails::Initializer.class_eval do
|
179
|
+
def load_gems
|
180
|
+
@bundler_loaded ||= Bundler.require :default, :assets, Rails.env
|
181
|
+
end
|
182
|
+
end
|
183
|
+
```
|
184
|
+
|
185
|
+
## Contributing
|
186
|
+
|
187
|
+
1. Fork it
|
188
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
189
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
190
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
191
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require 'rubygems'
|
3
|
+
require 'bundler'
|
4
|
+
Bundler.setup
|
5
|
+
require 'rake/dsl_definition' rescue nil
|
6
|
+
|
7
|
+
require "bundler/gem_tasks"
|
8
|
+
require 'appraisal'
|
9
|
+
require 'compass'
|
10
|
+
|
11
|
+
# ----- Default: Testing ------
|
12
|
+
|
13
|
+
task :default => [:test, :features]
|
14
|
+
|
15
|
+
require 'rake/testtask'
|
16
|
+
require 'fileutils'
|
17
|
+
|
18
|
+
Rake::TestTask.new :test do |t|
|
19
|
+
t.libs << 'lib'
|
20
|
+
t.libs << 'test'
|
21
|
+
test_files = FileList['test/**/*_test.rb']
|
22
|
+
test_files.exclude('test/rails/*', 'test/haml/*')
|
23
|
+
t.test_files = test_files
|
24
|
+
t.verbose = true
|
25
|
+
end
|
26
|
+
|
27
|
+
Rake::TestTask.new :units do |t|
|
28
|
+
t.libs << 'lib'
|
29
|
+
t.libs << 'test'
|
30
|
+
test_files = FileList['test/units/**/*_test.rb']
|
31
|
+
test_files.exclude('test/rails/*', 'test/haml/*')
|
32
|
+
t.test_files = test_files
|
33
|
+
t.verbose = true
|
34
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/compass-rails/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Scott Davis", "Chris Eppstein"]
|
6
|
+
gem.email = ["jetviper21@gmail.com", "chris@eppsteins.net"]
|
7
|
+
gem.description = %q{Integrate Compass into Rails 2.3 and up.}
|
8
|
+
gem.summary = %q{Integrate Compass into Rails 2.3 and up.}
|
9
|
+
gem.homepage = "https://github.com/Compass/compass-rails"
|
10
|
+
|
11
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
gem.name = "compass-rails"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = CompassRails::VERSION
|
17
|
+
|
18
|
+
gem.add_dependency 'rails'
|
19
|
+
gem.add_dependency 'compass', '~> 0.12.rc.0'
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
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", "2.3.14"
|
10
|
+
|
11
|
+
group :assets do
|
12
|
+
gem "compass", :git=>"git://github.com/chriseppstein/compass.git", :branch=>:master
|
13
|
+
gem "compass-rails", :path=>".."
|
14
|
+
end
|
15
|
+
group :test do
|
16
|
+
gem "mocha"
|
17
|
+
gem "appraisal", :git=>"git://github.com/scottdavis/appraisal.git"
|
18
|
+
gem "rainbow"
|
19
|
+
end
|
20
|
+
|
21
|
+
gemspec :path=>"../"
|
@@ -0,0 +1,87 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/chriseppstein/compass.git
|
3
|
+
revision: addbc94716e95a7e6f200baa980b48c7e7a1a568
|
4
|
+
branch: master
|
5
|
+
specs:
|
6
|
+
compass (0.12.rc.4.addbc94)
|
7
|
+
chunky_png (~> 1.2)
|
8
|
+
fssm (>= 0.2.7)
|
9
|
+
sass (~> 3.1)
|
10
|
+
|
11
|
+
GIT
|
12
|
+
remote: git://github.com/scottdavis/appraisal.git
|
13
|
+
revision: b39ce49f69e330ccd5a1cb48e690f00e800a45d3
|
14
|
+
specs:
|
15
|
+
appraisal (0.4.0)
|
16
|
+
bundler
|
17
|
+
rake
|
18
|
+
|
19
|
+
PATH
|
20
|
+
remote: ..
|
21
|
+
specs:
|
22
|
+
compass-rails (1.0.0.rc.0)
|
23
|
+
compass (~> 0.12.rc.0)
|
24
|
+
rails
|
25
|
+
|
26
|
+
PATH
|
27
|
+
remote: ..
|
28
|
+
specs:
|
29
|
+
compass-rails (1.0.0.rc.0)
|
30
|
+
compass (~> 0.12.rc.0)
|
31
|
+
rails
|
32
|
+
|
33
|
+
GEM
|
34
|
+
remote: https://rubygems.org/
|
35
|
+
specs:
|
36
|
+
actionmailer (2.3.14)
|
37
|
+
actionpack (= 2.3.14)
|
38
|
+
actionpack (2.3.14)
|
39
|
+
activesupport (= 2.3.14)
|
40
|
+
rack (~> 1.1.0)
|
41
|
+
activerecord (2.3.14)
|
42
|
+
activesupport (= 2.3.14)
|
43
|
+
activeresource (2.3.14)
|
44
|
+
activesupport (= 2.3.14)
|
45
|
+
activesupport (2.3.14)
|
46
|
+
chunky_png (1.2.5)
|
47
|
+
ffi (1.0.11)
|
48
|
+
fssm (0.2.8.1)
|
49
|
+
guard (1.0.0)
|
50
|
+
ffi (>= 0.5.0)
|
51
|
+
thor (~> 0.14.6)
|
52
|
+
guard-test (0.4.3)
|
53
|
+
guard (>= 0.4)
|
54
|
+
test-unit (~> 2.2)
|
55
|
+
metaclass (0.0.1)
|
56
|
+
mocha (0.10.3)
|
57
|
+
metaclass (~> 0.0.1)
|
58
|
+
rack (1.1.3)
|
59
|
+
rails (2.3.14)
|
60
|
+
actionmailer (= 2.3.14)
|
61
|
+
actionpack (= 2.3.14)
|
62
|
+
activerecord (= 2.3.14)
|
63
|
+
activeresource (= 2.3.14)
|
64
|
+
activesupport (= 2.3.14)
|
65
|
+
rake (>= 0.8.3)
|
66
|
+
rainbow (1.1.3)
|
67
|
+
rake (0.9.2.2)
|
68
|
+
rb-fsevent (0.9.0)
|
69
|
+
ruby_gntp (0.3.4)
|
70
|
+
sass (3.1.12)
|
71
|
+
test-unit (2.4.5)
|
72
|
+
thor (0.14.6)
|
73
|
+
|
74
|
+
PLATFORMS
|
75
|
+
ruby
|
76
|
+
|
77
|
+
DEPENDENCIES
|
78
|
+
appraisal!
|
79
|
+
compass!
|
80
|
+
compass-rails!
|
81
|
+
guard
|
82
|
+
guard-test
|
83
|
+
mocha
|
84
|
+
rails (= 2.3.14)
|
85
|
+
rainbow
|
86
|
+
rb-fsevent
|
87
|
+
ruby_gntp
|