module Assembler

Constants

VERSION

Public Instance Methods

after_assembly(&block) click to toggle source
# File lib/assembler.rb, line 45
def after_assembly(&block)
  assembly_setup do
    after_assembly_blocks << block
  end
end
after_assembly_blocks() click to toggle source
# File lib/assembler.rb, line 51
def after_assembly_blocks
  @after_assembly_blocks ||= []
end
assemble_from(*args) click to toggle source
# File lib/assembler.rb, line 18
def assemble_from(*args)
  assembly_setup do
    optional = args.last.is_a?(Hash) ? args.pop : {}
    required = args

    optional.each { |k,v| assemble_from_options(k, default: v) }
    required.each { |k| assemble_from_options(k) }
  end
end
Also aliased as: assemble_with
assemble_from_options(*args) click to toggle source
# File lib/assembler.rb, line 5
def assemble_from_options(*args)
  assembly_setup do
    options = args.last.is_a?(Hash) ? args.pop : {}
    param_names = args

    param_names.each do |param_name|
      param = Parameter.new(param_name, options)
      assembly_parameters_hash[param.name] = param
    end
  end
end
Also aliased as: assemble_with_options
assemble_with(*args)
Alias for: assemble_from
assemble_with_options(*args)
assembler_initializer(*args) click to toggle source
# File lib/assembler.rb, line 29
def assembler_initializer(*args)
  caller_file, caller_line, _ = caller.first.split(':')
  warn "The `assembler_initializer` method is deprecated and will be phased out in version 2.0. Please use `assemble_from` instead. Called from #{caller_file}:#{caller_line}."
  assemble_from(*args)
end
assembly_parameters() click to toggle source
# File lib/assembler.rb, line 55
def assembly_parameters
  assembly_parameters_hash.values
end
assembly_parameters_hash() click to toggle source
# File lib/assembler.rb, line 59
def assembly_parameters_hash
  @assembly_parameters_hash ||= {}
end
assembly_setup() { || ... } click to toggle source
# File lib/assembler.rb, line 63
def assembly_setup
  yield
ensure
  include Assembler::Initializer
  attr_reader *assembly_parameters.map(&:name)
  private *assembly_parameters.map(&:name)
end
before_assembly(&block) click to toggle source
# File lib/assembler.rb, line 35
def before_assembly(&block)
  assembly_setup do
    before_assembly_blocks << block
  end
end
before_assembly_blocks() click to toggle source
# File lib/assembler.rb, line 41
def before_assembly_blocks
  @before_assembly_blocks ||= []
end