2013-03-20 5 views
1

Я пытаюсь передать некоторые значения из Rails (3.2.12) в файлы SASS (3.2.7) во время компиляции. Я попытался следовать за SASS docs и некоторыми другими answers на SO. Похоже, что это должно быть довольно просто, но мне не удалось пройти эту ошибку:Передача значений из Rails в SASS с использованием пользовательских функций

undefined method `gsub' for nil:NilClass 
    (in /home/joegatt/Sites/joegatt.net/v3/joegattnet_v3/app/assets/stylesheets/application.css.sass) 

Моя установка является:

#/config/application.rb 
if config.respond_to?(:sass) 
    require "#{config.root}/lib/sass.rb" 
end 


#/lib/sass.rb 
module Sass::Script::Functions 
    def styling(string, opts = {}) 
    assert_type string, :String 
    Sass::Script::String.new('#ff0000') 
    end 
    declare :styling, :args => [:string] 
end 


#/assets/stylesheets/default.css.scss 
background-color: styling('test') 

ответ

2

мне удалось заставить его работать, выполнив следующие действия:

#/lib/sass.rb 
module Sass::Script::Functions 
    def settings_styling(setting) 
    assert_type setting, :String 
    Sass::Script::Parser.parse('#ff0000', 0, 0) 
    end 
    declare :settings_styling, args: [:setting] 
end 

разница заключается в том, что вместо того, чтобы использовать Sass :: Script :: String.new, я использую Sass :: Script :: Parser.parse так, что вместо натянуть «tree of Script::Nodes» является вернулся. Любые лучшие идеи?

Смежные вопросы