class SpinningWheel::Fabric
Attributes
class_name[R]
name[R]
Public Class Methods
new(name:, class_name:, &block)
click to toggle source
# File lib/spinning_wheel/fabric.rb, line 6 def initialize(name:, class_name:, &block) @name = name @class_name = class_name @block = block end
Public Instance Methods
build()
click to toggle source
# File lib/spinning_wheel/fabric.rb, line 12 def build @klass = @class_name.constantize attributes = DSL.run(@block) parameters = @klass.instance_method(:initialize).parameters required_parametes = [] parameters.each do |parameter| if parameter[0] == :req required_parametes << parameter[1] end end if required_parametes == attributes.keys @klass.new(*attributes.values) else @klass.new(**attributes) end end