我不太了解Ruby,并希望有人能帮助我理解这些代码所做的一些事情。
newproperty(:value, :array_matching => :all) do
desc 'The value of the setting to be defined.'
def insync?(is)
return true if @should.empty?
return false unless is.is_a? Array
return false unless is.length == @should.length
return (
is & @should == is or
is & @should.map(&:to_s) == is
)
end
我根本不确定这条线......
newproperty(:value, :array_matching => :all) do
......正在做。定义一个接受两个参数的函数: value 和 array_matching ?这是一个循环?我不明白:array_matching => :所有都是关于。
接下来是......
desc 'The value of the setting to be defined.'
......这是某种内置文档吗?接下来就是这个:
def insync?(is)
return true if @should.empty?
return false unless is.is_a? Array
return false unless is.length == @should.length
return (
is & @should == is or
is & @should.map(&:to_s) == is
)
我猜这个函数叫做" insync"正在定义。不确定'是什么?'手段。另外我猜@should是在父范围内声明的一些全局变量。
由于
答案 0 :(得分:1)
我会尝试做出假设,并尽可能从所提供的信息中回答这个问题。
您可能有一个函数newproperty(x, y)
< - 在相关模型或帮助器中的某处接受2个参数。它从分配:value
和:array_matching => :all
的某些用户互动中获取这些输入是基于:value
。
desc
不是本机Ruby函数。它必须在某处定义。例如,此代码将运行:
def desc(x)
puts x
end
desc 'The value of the setting to be defined.'
它有点不同寻常,但它会起作用。
def insync?(is)
中是函数名称的一部分。 Ruby应该是一种非常类似英语的语言,并且由于许多函数都评估为真或假,所以当你将函数本身作为一个问题时,它有时更容易阅读。