Class: Minenum::Model::Reflection
- Inherits:
-
Object
- Object
- Minenum::Model::Reflection
- Defined in:
- lib/minenum/model/reflection.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#adapter_builder ⇒ Object
readonly
Returns the value of attribute adapter_builder.
Instance Method Summary collapse
- #build_enum(model) ⇒ Object
- #enum_class ⇒ Object
-
#initialize(owner_class, name, values, adapter_builder: Enum::Adapter::LocalInstanceVariableAccessor) ⇒ Reflection
constructor
A new instance of Reflection.
- #name ⇒ Object
Constructor Details
#initialize(owner_class, name, values, adapter_builder: Enum::Adapter::LocalInstanceVariableAccessor) ⇒ Reflection
Returns a new instance of Reflection.
11 12 13 14 15 16 17 |
# File 'lib/minenum/model/reflection.rb', line 11 def initialize(owner_class, name, values, adapter_builder: Enum::Adapter::LocalInstanceVariableAccessor) @owner_class = owner_class @name = name @values = values @adapter_builder = adapter_builder end |
Instance Attribute Details
#adapter_builder ⇒ Object (readonly)
Returns the value of attribute adapter_builder.
9 10 11 |
# File 'lib/minenum/model/reflection.rb', line 9 def adapter_builder @adapter_builder end |
Instance Method Details
#build_enum(model) ⇒ Object
36 37 38 39 |
# File 'lib/minenum/model/reflection.rb', line 36 def build_enum(model) adapter = @adapter_builder.build(model, @name) enum_class.new(adapter) end |
#enum_class ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/minenum/model/reflection.rb', line 23 def enum_class @enum_class ||= begin basename = classify(@name.to_s) if @owner_class.const_defined?(basename, false) @owner_class.const_get(basename, false) else klass = Enum::ClassBuilder.build(@values) @owner_class.const_set(basename, klass) end end end |
#name ⇒ Object
19 20 21 |
# File 'lib/minenum/model/reflection.rb', line 19 def name @name.to_sym end |