2012-10-13 48 views
3

我想要一個ruby類,其中我需要的所有方法都是類方法,因此我將它們定義爲​​,現在所有方法都定義爲self.任何避免編寫self.的方法,並且一次將所有方法聲明爲類級別。什麼方法來定義ruby中的類級別方法

一個是把它們放在一個模塊中,讓這個類擴展它。

還有什麼?

回答

4
class Foo 
    class << self 
    def class_method_name1 
    end 

    def class_method_name2 
    end 
    end 

    def instance_method_name1 
    end 

    def self.class_method_name3 
    end 
end 
0
class Foo 
    def self.bar 
    puts 'class method' 
    end 

    def baz 
    puts 'instance method' 
    end 
end 

Foo.bar # => "class method" 
Foo.baz # => NoMethodError: undefined method ‘baz’ for Foo:Class 

Foo.new.baz # => instance method 
Foo.new.bar # => NoMethodError: undefined method ‘bar’ for #<Foo:0x1e820> 
相關問題