Class: ObjectForge::Forge
- Inherits:
-
Object
- Object
- ObjectForge::Forge
- Defined in:
- lib/object_forge/forge.rb
Overview
Object instantitation forge.
Defined Under Namespace
Classes: Parameters
Instance Attribute Summary collapse
-
#forged ⇒ Class
readonly
Class to forge.
-
#name ⇒ Symbol?
readonly
Forge name.
-
#parameters ⇒ Parameters, ForgeDSL
readonly
Forge parameters.
Class Method Summary collapse
-
.define(forged, name: nil) {|f| ... } ⇒ Forge
Define (and create) a forge using DSL.
Instance Method Summary collapse
-
#forge(*traits, **overrides) {|object| ... } ⇒ Any
(also: #build, #[])
Forge a new instance.
-
#initialize(forged, parameters, name: nil) ⇒ Forge
constructor
A new instance of Forge.
Constructor Details
#initialize(forged, parameters, name: nil) ⇒ Forge
Returns a new instance of Forge.
50 51 52 53 54 |
# File 'lib/object_forge/forge.rb', line 50 def initialize(forged, parameters, name: nil) @name = name @forged = forged @parameters = parameters end |
Instance Attribute Details
#forged ⇒ Class (readonly)
Returns class to forge.
42 43 44 |
# File 'lib/object_forge/forge.rb', line 42 def forged @forged end |
#name ⇒ Symbol? (readonly)
Returns forge name.
39 40 41 |
# File 'lib/object_forge/forge.rb', line 39 def name @name end |
#parameters ⇒ Parameters, ForgeDSL (readonly)
Returns forge parameters.
45 46 47 |
# File 'lib/object_forge/forge.rb', line 45 def parameters @parameters end |
Class Method Details
Instance Method Details
#forge(*traits, **overrides, &) ⇒ Any #forge(traits, overrides, &) ⇒ Any Also known as: build, []
Forge a new instance.
Positional arguments are taken as trait names, keyword arguments as attribute overrides, unless there are exactly two positional arguments: an array and a hash.
All traits and overrides are applied in argument order, with overrides always applied after traits.
If a block is given, forged instance is yielded to it after being built.
77 78 79 80 81 82 |
# File 'lib/object_forge/forge.rb', line 77 def forge(*traits, **overrides) resolved_attributes = resolve_attributes(traits, overrides) instance = build_instance(resolved_attributes) yield instance if block_given? instance end |