class Abstract::Builder

Abstract::Builder class

Attributes

object[R]

Public Class Methods

build() { |builder| ... } click to toggle source

Create an instance of Abstract::Object class and yield block to it @return [AbstractObject] - Abstract::Object class instance

# File lib/abstracts.rb, line 42
def self.build
  builder = new(@build_class)
  yield builder if block_given?
  builder.object
end
new(object) click to toggle source

Define attribute writers to Abstract::Builder instance according to

existing accessors of Abstract::Object instance

@param object [String] - Abstract::Object.class.name @return [Abstract::Builder] - builder object

# File lib/abstracts.rb, line 52
def initialize(object)
  @object = Class.const_get(object).new
  @object.attrs.each do |attr|
    define_singleton_method "#{attr}=" do |param|
      @object.public_send("#{attr}=", param)
    end
  end
end