module EnumArgs::ProxiedEnumerable
Public Class Methods
new(*args, &blk)
click to toggle source
Calls superclass method
# File lib/enum_args/proxied_enumerable.rb, line 68 def initialize(*args, &blk) klass = self.class name = klass.enum_args_accessor_method instance_variable_set( "@#{name}", EnumArgs::Proxy.new(self, klass.enum_args_method, *klass.enum_args_default_args, using: klass.enum_args_default_using, cache: klass.enum_args_cache) ) define_singleton_method(name) do instance_variable_get("@#{name}") end super end
on_enumerable_methods(on, &blk)
click to toggle source
# File lib/enum_args/proxied_enumerable.rb, line 58 def self.on_enumerable_methods(on, &blk) (Enumerable.instance_methods + [:each]).each do |m| on.send :define_method, m, &blk end end
prepended(base)
click to toggle source
# File lib/enum_args/proxied_enumerable.rb, line 52 def self.prepended(base) # including Enumerable is just so that obj#is_a? Enumerable returns true base.include Enumerable base.singleton_class.prepend ClassMethods end