Method: ActiveSupport::Concern#class_methods
- Defined in:
- activesupport/lib/active_support/concern.rb
#class_methods(&class_methods_module_definition) ⇒ Object
Define class methods from given block. You can define private class methods as well.
module Example
extend ActiveSupport::Concern
class_methods do
def foo; puts 'foo'; end
private
def ; puts 'bar'; end
end
end
class Buzz
include Example
end
Buzz.foo # => "foo"
Buzz. # => private method 'bar' called for Buzz:Class(NoMethodError)
209 210 211 212 213 214 215 |
# File 'activesupport/lib/active_support/concern.rb', line 209 def class_methods(&class_methods_module_definition) mod = const_defined?(:ClassMethods, false) ? const_get(:ClassMethods) : const_set(:ClassMethods, Module.new) mod.module_eval(&class_methods_module_definition) end |