instance method class_methods

Ruby on Rails 7.0.10

Since v4.2.9

Available in: v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

class_methods(&class_methods_module_definition)

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 bar; puts 'bar'; end
  end
end

class Buzz
  include Example
end

Buzz.foo # => "foo"
Buzz.bar # => private method 'bar' called for Buzz:Class(NoMethodError)

Parameters

class_methods_module_definition block
Source
# File activesupport/lib/active_support/concern.rb, line 207
    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

Defined in activesupport/lib/active_support/concern.rb line 207 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Concern

Type at least 2 characters to search.

↑↓ navigate · open · esc close