使用自定义函数将值从Rails传递到SASS



我试图在编译期间从Rails(3.2.12)传递一些值到SASS(3.2.7)文件。我试着遵循SASS文档和其他一些关于SO的答案。这似乎应该是相当直接的,但我还没有设法克服这个错误:

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')

我已经设法让它工作通过做以下事情:

#/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。新的,我使用Sass::Script::Parser。解析以便返回"Script::Nodes树"而不是字符串。有更好的主意吗?

最新更新