【问题标题】:Calling SCSS functions from Ruby从 Ruby 调用 SCSS 函数
【发布时间】:2014-08-06 04:59:43
【问题描述】:

我正在尝试从 Ruby 调用 darken。

这是我的代码:

Sass::Script::Functions.darken('#FF0000', '20%')

我不断收到此错误:

undefined method `darken' for Sass::Script::Functions:Module

我做错了什么?

【问题讨论】:

    标签: ruby sass


    【解决方案1】:

    Sass::Script::Functions 是一个带有实例方法的模块,它应该包含在另一个对象中。不幸的是,当你这样做时,它需要其他方法才能工作。那里也有一个EvaluationContext 对象,扩展它可以让darken 运行,但在断言要传递的对象类型时失败。

    class C < Sass::Script::Functions::EvaluationContext
      def initialize
        super :global
      end  
      def x
        darken('#FF0000', '20%')    
      end  
    end  
    
    > C.new.x
    ArgumentError: $color: "#FF0000" is not a color
    

    你想完成什么? Sass 似乎不应该以这种方式调用。

    【讨论】:

    • 我正在尝试使用带有插值和常规 css 的变暗函数。
    • 嗯,有点。它应该在 Sass 的解析器中使用,其中值将作为颜色对象传递。您可以看到assert_type 检查所有参数。这根本不是它的用途。
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2012-01-17
    • 1970-01-01
    相关资源
    最近更新 更多