Module: EnumArgs::ProxiedEnumerable
- Defined in:
- lib/enum_args/proxied_enumerable.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.on_enumerable_methods(on, &blk) ⇒ Object
39 40 41 42 43 |
# File 'lib/enum_args/proxied_enumerable.rb', line 39 def self.on_enumerable_methods(on, &blk) (Enumerable.instance_methods + [:each]).each do |m| on.send :define_method, m, &blk end end |
.prepended(base) ⇒ Object
33 34 35 36 37 |
# File 'lib/enum_args/proxied_enumerable.rb', line 33 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 |
Instance Method Details
#initialize(*args, &blk) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/enum_args/proxied_enumerable.rb', line 49 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) ) define_singleton_method(name) do instance_variable_get("@#{name}") end super end |