class Class

Public Instance Methods

check_pinball() click to toggle source
# File lib/pinball/class.rb, line 16
def check_pinball
  unless is_a? Pinball
    extend Pinball
    send(:include, Pinball::Methods)

    public_send(:define_singleton_method, :inherited_with_pinball) do |child|
      inherited_without_pinball(child) if respond_to?(:inherited_without_pinball)
      child.instance_variable_set :@dependencies, dependencies
      child.check_pinball
    end

    public_send(:define_singleton_method, :inherited_without_pinball, method(:inherited)) if respond_to?(:inherited)
    public_send(:define_singleton_method, :inherited, method(:inherited_with_pinball))
  end
end
class_inject(*deps) click to toggle source
# File lib/pinball/class.rb, line 8
def class_inject(*deps)
  deps.each do |dep|
    define_singleton_method dep do
      Pinball::Container.lookup(dep).fetch(self)
    end
  end
end
inject(*deps) click to toggle source
# File lib/pinball/class.rb, line 2
def inject(*deps)
  check_pinball
  @dependencies ||= []
  @dependencies.concat(deps).uniq!
end