Class: HumanAttributes::FormattersBuilder

Inherits:
Object
  • Object
show all
Includes:
Config
Defined in:
lib/human_attributes/formatters_builder.rb

Constant Summary

Constants included from Config

Config::TYPES

Instance Method Summary collapse

Methods included from Config

#category_by_type, #formatter_by_type, #known_type?, #raise_error, #suffix_by_type, #type_config

Constructor Details

#initialize(attributes, config) ⇒ FormattersBuilder

Returns a new instance of FormattersBuilder.



5
6
7
8
9
# File 'lib/human_attributes/formatters_builder.rb', line 5

def initialize(attributes, config)
  raise_error('InvalidHumanizeConfig') unless config.is_a?(Hash)
  @attributes = attributes
  @config = config
end

Instance Method Details

#buildObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/human_attributes/formatters_builder.rb', line 11

def build
  formatters = []

  get_types(@config).each do |type|
    raise_error('InvalidType') unless known_type?(type)
    options = get_options(@config[type])
    formatters << @attributes.map do |attribute|
      formatter_class(type).new(attribute, type, options)
    end
  end

  formatters.flatten
end