module EasilyTypable::SubClassMethods

Public Class Methods

included(subclass_constant) click to toggle source
Calls superclass method
# File lib/easily_typable.rb, line 35
def self.included(subclass_constant)
  super
  subclass_constant.class_eval(type_method_definition(subclass_constant))
  superclass_constant = subclass_constant.superclass
  begin
    superclass_constant.class_eval(type_method_definition(subclass_constant))
    superclass_constant = superclass_constant.superclass
  end while superclass_constant.include?(EasilyTypable)
end

Private Class Methods

type_method_definition(subclass_constant) click to toggle source
# File lib/easily_typable.rb, line 46
    def self.type_method_definition(subclass_constant)
      <<-MULTI
        def #{EasilyTypable::__methodize__(subclass_constant.name)}?
          self.is_a?(#{subclass_constant.name})
        end
      MULTI
    end