2
ここにはworkflow
gemの中のメソッド定義があります。別のメソッドの中のクラスメソッド?
def spec
# check the singleton class first
class << self
return workflow_spec if workflow_spec
end
c = self.class
# using a simple loop instead of class_inheritable_accessor to avoid
# dependency on Rails' ActiveSupport
until c.workflow_spec || !(c.include? Workflow)
c = c.superclass
end
c.workflow_spec
end
(クラスメソッド)と同等の
class << self
return workflow_spec if workflow_spec
end
です:
class << self
def workflow_spec
return workflow_spec if workflow_spec
end
end
? workflow_spec
がクラスメソッドである場合、それをmethod
の内部で定義する目的は何ですか? と呼ばれるworkflow_spec
はありますか?またはちょうどself.workflow_spec
。
。シングルトンクラスの 'workflow_spec'メソッドをコール*し、その戻り値が真実であれば、それを再度呼び出し、それによって返された値を返します。 –
'workflow_spec'が' if self.class.methods.include? 'とどのように似ているのかわかりません。 workflow_spec'である。これは実際に*メソッドを2回呼び出さないでしょうか? (つまり、self.class.workflow.spec()ならreturn self.class.workflow_spec() ') – Amadan
@Jordan、Amadan確かにもう一杯のコーヒーが必要です。私の上の恥、固定。 – mudasobwa