Module: Assembler

Defined in:
lib/assembler.rb,
lib/assembler/builder.rb,
lib/assembler/version.rb,
lib/assembler/parameters.rb,
lib/assembler/initializer.rb

Defined Under Namespace

Modules: Initializer Classes: Builder, Parameters

Constant Summary collapse

VERSION =
"1.1.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#optional_paramsObject



31
32
33
# File 'lib/assembler.rb', line 31

def optional_params
  @optional_params ||= {}
end

#required_paramsObject



27
28
29
# File 'lib/assembler.rb', line 27

def required_params
  @required_params ||= []
end

Instance Method Details

#all_param_namesObject



35
36
37
# File 'lib/assembler.rb', line 35

def all_param_names
  (required_params + optional_params.keys).map(&:to_sym)
end

#assemble_from(*args) ⇒ Object Also known as: assemble_with



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/assembler.rb', line 7

def assemble_from(*args)
  optional = args.last.is_a?(Hash) ? args.pop : {}
  required = args

  include Assembler::Initializer

  self.required_params += required
  self.optional_params = optional_params.merge(optional)

  attr_reader *all_param_names
  private *all_param_names
end

#assembler_initializer(*args) ⇒ Object



21
22
23
24
25
# File 'lib/assembler.rb', line 21

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