Class: Ivar::ExplicitDeclaration
- Inherits:
-
Declaration
- Object
- Declaration
- Ivar::ExplicitDeclaration
- Defined in:
- lib/ivar/explicit_declaration.rb
Overview
Represents an explicit declaration from the ivar macro
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Declaration
Instance Method Summary collapse
-
#before_init(instance, args, kwargs) ⇒ Object
Called before object initialization.
-
#initialize(name, manifest, options = {}) ⇒ ExplicitDeclaration
constructor
Initialize a new explicit declaration.
-
#kwarg_init? ⇒ Boolean
Check if this declaration uses keyword argument initialization.
-
#on_declare(klass) ⇒ Object
Called when the declaration is added to a class.
Constructor Details
#initialize(name, manifest, options = {}) ⇒ ExplicitDeclaration
Initialize a new explicit declaration
12 13 14 15 16 17 18 19 20 |
# File 'lib/ivar/explicit_declaration.rb', line 12 def initialize(name, manifest, = {}) super(name, manifest) @init_method = [:init] @initial_value = [:value] @reader = [:reader] || false @writer = [:writer] || false @accessor = [:accessor] || false @init_block = [:block] end |
Instance Method Details
#before_init(instance, args, kwargs) ⇒ Object
Called before object initialization
36 37 38 39 40 41 42 43 |
# File 'lib/ivar/explicit_declaration.rb', line 36 def before_init(instance, args, kwargs) if @init_block instance.instance_variable_set(@name, @init_block.call(@name)) end if @initial_value != Ivar::Macros::UNSET instance.instance_variable_set(@name, @initial_value) end end |
#kwarg_init? ⇒ Boolean
Check if this declaration uses keyword argument initialization
30 |
# File 'lib/ivar/explicit_declaration.rb', line 30 def kwarg_init? = false |
#on_declare(klass) ⇒ Object
Called when the declaration is added to a class
24 25 26 |
# File 'lib/ivar/explicit_declaration.rb', line 24 def on_declare(klass) add_accessor_methods(klass) end |