class Initializer::Generator

Constants

DEFAULT_VISIBILITY

Attributes

parameters[R]
target_class[R]

Public Class Methods

build(target_class, parameters) click to toggle source
# File lib/initializer/generator.rb, line 13
def self.build(target_class, parameters)
  parameters, options = separate_parameters(parameters)
  parameters = NormalizeParameters.(parameters, options.visibility)
  instance = new target_class, parameters
  instance
end
call(target_class, parameters) click to toggle source
# File lib/initializer/generator.rb, line 20
def self.call(target_class, parameters)
  instance = build target_class, parameters
  instance.call
end
new(target_class, parameters) click to toggle source
# File lib/initializer/generator.rb, line 8
def initialize(target_class, parameters)
  @target_class = target_class
  @parameters = parameters
end
options?(parameters) click to toggle source
# File lib/initializer/generator.rb, line 38
def self.options?(parameters)
  parameters.last.is_a? Hash
end
separate_parameters(parameters) click to toggle source
# File lib/initializer/generator.rb, line 30
def self.separate_parameters(parameters)
  options = { :visibility => DEFAULT_VISIBILITY }
  options = parameters.pop if options?(parameters)
  options.extend InitializerOptions

  return parameters, options
end

Public Instance Methods

call() click to toggle source
# File lib/initializer/generator.rb, line 25
def call
  define_attributes
  Define.(target_class, parameters)
end
define_attributes() click to toggle source
# File lib/initializer/generator.rb, line 42
def define_attributes
  parameters.each do |p|
    ::Attribute::Define.(target_class, p.name, p.visibility)
  end
end