module Duckery
Public Class Methods
config() { |configuration| ... }
click to toggle source
# File lib/duckery.rb, line 36 def self.config yield(configuration) if block_given? end
configuration()
click to toggle source
# File lib/duckery.rb, line 27 def self.configuration @configuration ||= Duckery::Configuration.new end
prepended(base)
click to toggle source
Calls superclass method
# File lib/duckery.rb, line 7 def self.prepended(base) overiden_classes_module = Module.new do Duckery.configuration.variants.each do |variant| Duckery.statistic[base.name] ||= { variants: [] } # Lookup on self and ancestor for method `variant` next unless base.methods.include?(variant) define_method variant do |*args| Duckery.statistic[base.name][:variants].push(variant) # Roll call super(*args) end end end base.singleton_class.prepend(overiden_classes_module) end
reset_configuration()
click to toggle source
# File lib/duckery.rb, line 40 def self.reset_configuration @configuration = Duckery::Configuration.new end
statistic()
click to toggle source
# File lib/duckery.rb, line 44 def self.statistic @statistic ||= {} end
variants()
click to toggle source
TODO: convert to symbols
# File lib/duckery.rb, line 32 def self.variants configuration.variants end