Объявление методов класса в class_methods или включенных - PullRequest
1 голос
/ 20 июня 2019
require 'active_support/concern'

module M
  extend ActiveSupport::Concern

  included do
    def self.b
      puts 'b'
    end
  end

  class_methods do
    def a
      puts 'a'
    end
  end
end

class H
  include M
end

Хотя class_methods является стандартным способом определения методов класса в ActiveSupport::Concern, я нахожу несколько примеров, когда люди объявляют методы класса в included с помощью self.

Оба работают, так есть ли граничные случаи, если методы класса определены внутри included?

...