如何使用irb的'modular-scale'红宝石宝石?

时间:2013-01-14 17:53:42

标签: ruby sass compass-sass

我是一个完整的红宝石新手,我正在尝试了解更多模块化比例库https://github.com/scottkellum/modular-scale

我希望测试一下irb中的一些功能,这是我的结果:

>> require 'modular-scale'
=> true
>> module
module  
>> modular-scale(2)
NameError: undefined local variable or method `modular' for main:Object
    from (irb):2
>> modularScale(2)
NoMethodError: undefined method `modularScale' for main:Object
    from (irb):3
>> $ratio
=> nil
>> golden()
NoMethodError: undefined method `golden' for main:Object
    from (irb):5

我意识到它是一个指南针插件,但在irb上运行它的一些功能会很好。我对罗盘插件的编写和测试比对模块化规模本身更感兴趣。我选择了图书馆,因为我觉得它看起来比其他人更直接。

任何帮助将不胜感激

更新

https://github.com/scottkellum/modular-scale/blob/master/lib/modular-scale.rb中的

它提供了我认为可以从irb调用的函数

>> bar = Sass::Script::Number.new(12)    ;; This works
=> 12

>> bar = Sass::Script::Functions.major_tenth()  ;; I thought this might work but it doesn't
NoMethodError: undefined method `major_tenth' for Sass::Script::Functions:Module
    from (irb):9

1 个答案:

答案 0 :(得分:3)

class SassPlay
  include Sass::Script::Functions
end

SassPlay.new.double_octave
=> 4

方法modular-scale()Sass function,您无法从irb调用它。它是由Sass解析和执行的样式表函数,而不是irb

Sass是一种解释性语言。它与ruby方法没有一对一的关系,因此你不能直接从ruby和irb访问Sass的所有功能。

您可以在此处查看modular-scale()定义:

https://github.com/scottkellum/modular-scale/blob/master/stylesheets/_modular-scale.scss