Merge commit 'merbjedi/master'

* commit 'merbjedi/master':
  Adding Pathname support to compass configs
  Adding PathName support for add_project_configuration
  Separating out Rails2 actionpack integration logic
This commit is contained in:
Chris Eppstein 2010-02-21 23:12:17 -08:00
commit 0c593e2c25
7 changed files with 40 additions and 4 deletions

View File

@ -1,8 +1,12 @@
unless defined?(Compass::RAILS_LOADED)
Compass::RAILS_LOADED = true
if ActionPack::VERSION::MAJOR >= 3
# figure something out so image_path works with rails integration
else
%w(action_controller sass_plugin urls).each do |lib|
require "compass/app_integration/rails/#{lib}"
require "compass/app_integration/rails/actionpack2/#{lib}"
end
end
# Wierd that this has to be re-included to pick up sub-modules. Ruby bug?

View File

@ -31,6 +31,7 @@ module Compass
if config.is_a?(Compass::Configuration::Data)
config
elsif config.respond_to?(:read)
filename ||= config.to_s if config.is_a?(Pathname)
Compass::Configuration::Data.new_from_string(config.read, filename)
elsif config.is_a?(Hash)
Compass::Configuration::Data.new(filename, config)

View File

@ -41,6 +41,7 @@ module Compass
eval(contents, bind, filename)
ATTRIBUTES.each do |prop|
value = eval(prop.to_s, bind) rescue nil
value = value.to_s if value.is_a?(Pathname)
self.send("#{prop}=", value) unless value.nil?
end
if @added_import_paths

View File

@ -93,6 +93,36 @@ css_dir = "css"
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true
additional_import_paths = ["../foo", "/path/to/my/framework"]
EXPECTED
assert_equal "/", Compass.configuration.http_path
assert_equal expected_serialization.split("\n"), Compass.configuration.serialize.split("\n")
end
def test_config_with_pathname
contents = StringIO.new(<<-CONFIG)
http_path = "/"
project_path = Pathname.new("/home/chris/my_compass_project")
css_dir = "css"
additional_import_paths = ["../foo"]
add_import_path "/path/to/my/framework"
CONFIG
Compass.add_configuration(contents, "test_additional_import_paths")
assert Compass.configuration.to_sass_engine_options[:load_paths].include?("/home/chris/my_compass_project/../foo")
assert Compass.configuration.to_sass_engine_options[:load_paths].include?("/path/to/my/framework"), Compass.configuration.to_sass_engine_options[:load_paths].inspect
assert_equal "/home/chris/my_compass_project/css/framework", Compass.configuration.to_sass_plugin_options[:template_location]["/path/to/my/framework"]
assert_equal "/home/chris/my_compass_project/css/foo", Compass.configuration.to_sass_plugin_options[:template_location]["/home/chris/my_compass_project/../foo"]
expected_serialization = <<EXPECTED
# Require any additional compass plugins here.
project_path = "/home/chris/my_compass_project"
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "css"
# To enable relative paths to assets via compass helper functions. Uncomment:
# relative_assets = true
additional_import_paths = ["../foo", "/path/to/my/framework"]
EXPECTED
assert_equal "/", Compass.configuration.http_path
assert_equal expected_serialization.split("\n"), Compass.configuration.serialize.split("\n")