module Naniyatsu

Constants

VERSION

Attributes

root_naniyatsu_class[R]

Public Class Methods

extended(klass) click to toggle source
# File lib/naniyatsu.rb, line 7
def self.extended(klass)
  klass.instance_variable_set :@root_naniyatsu_class, klass
  klass.send(:define_method, klass.naniyatsu_method_name(klass), -> { true })
end

Public Instance Methods

inherited(klass) click to toggle source
Calls superclass method
# File lib/naniyatsu.rb, line 12
def inherited(klass)
  root_naniyatsu_class = klass.superclass.root_naniyatsu_class
  klass.instance_variable_set :@root_naniyatsu_class, root_naniyatsu_class
  klass.send(:define_method, naniyatsu_method_name(klass), -> { true })
  root_naniyatsu_class.send(:define_method, naniyatsu_method_name(klass), -> { false })
  super
end
naniyatsu_method_name(klass) click to toggle source
# File lib/naniyatsu.rb, line 20
def naniyatsu_method_name(klass)
  klass.to_s.underscore + '?'
end