有什么方法可以在ruby中定义类级方法

时间:2012-10-13 18:21:55

标签: ruby

我希望有一个ruby类,其中我需要的所有方法都是类方法,因此我将它们定义为def self.method_name,现在所有方法都被定义为self.有没有办法避免编写self.,并一次性将所有方法声明为类级别。

一个是将它们放在一个模块中,让类扩展它。

还有什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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>