Class: MetadataPresenter::AddressFieldset

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Translation
Includes:
ActionView::Helpers, ActiveModel::Validations, SpecialCharacterUnescaper
Defined in:
app/models/metadata_presenter/address_fieldset.rb

Constant Summary collapse

DEFAULT_COUNTRY =
'United Kingdom'.freeze
FIELDS =
%w[
  address_line_one
  address_line_two
  city
  county
  postcode
  country
].freeze

Constants included from SpecialCharacterUnescaper

SpecialCharacterUnescaper::SPECIAL_CHARACTER_MAPPING

Instance Method Summary collapse

Methods included from SpecialCharacterUnescaper

#unescape_special_characters

Constructor Details

#initialize(address) ⇒ AddressFieldset

Returns a new instance of AddressFieldset.



20
21
22
23
24
25
26
27
28
# File 'app/models/metadata_presenter/address_fieldset.rb', line 20

def initialize(address)
  FIELDS.each do |field|
    next unless address[field]

    instance_variable_set(:"@#{field}", conform(address[field]))
  end

  @country ||= DEFAULT_COUNTRY
end

Instance Method Details

#as_jsonObject



34
35
36
# File 'app/models/metadata_presenter/address_fieldset.rb', line 34

def as_json
  super(only: FIELDS)
end

#conform(address_field) ⇒ Object



38
39
40
# File 'app/models/metadata_presenter/address_fieldset.rb', line 38

def conform(address_field)
  unescape_special_characters(sanitize(address_field, tags: [], attributes: []).strip)
end

#to_aObject



30
31
32
# File 'app/models/metadata_presenter/address_fieldset.rb', line 30

def to_a
  as_json.values.compact_blank
end