Class: FirmResult

Inherits:
Object
  • Object
show all
Defined in:
lib/mas/firm_result.rb

Constant Summary collapse

DIRECTLY_MAPPED_FIELDS =
[
  :address_line_one,
  :address_line_two,
  :address_town,
  :address_county,
  :address_postcode,
  :telephone_number,
  :website_address,
  :email_address,
  :free_initial_meeting,
  :minimum_fixed_fee,
  :other_advice_methods,
  :in_person_advice_methods,
  :investment_sizes,
  :adviser_accreditation_ids,
  :adviser_qualification_ids
]
TYPES_OF_ADVICE_FIELDS =
[
  :retirement_income_products,
  :pension_transfer,
  :options_when_paying_for_care,
  :equity_release,
  :inheritance_tax_planning,
  :wills_and_probate
]

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ FirmResult

Returns a new instance of FirmResult.



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mas/firm_result.rb', line 35

def initialize(data)
  source = data['_source']
  @id    = source['_id']
  @name  = source['registered_name']
  @total_advisers  = source['advisers'].count
  @closest_adviser = data['sort'].last

  (DIRECTLY_MAPPED_FIELDS + TYPES_OF_ADVICE_FIELDS).each do |field|
    instance_variable_set("@#{field}", source[field.to_s])
  end
end

Instance Method Details

#closest_adviserObject



59
60
61
62
63
64
65
# File 'lib/mas/firm_result.rb', line 59

def closest_adviser
  if @closest_adviser < 1
    I18n.t('search.result.miles_away_alt')
  else
    "#{format('%.1f', @closest_adviser)} #{I18n.t('search.result.miles_away')}"
  end
end

#minimum_fixed_fee?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/mas/firm_result.rb', line 51

def minimum_fixed_fee?
  minimum_fixed_fee.present?
end

#minimum_pot_size_idObject



55
56
57
# File 'lib/mas/firm_result.rb', line 55

def minimum_pot_size_id
  investment_sizes.first
end

#types_of_adviceObject



47
48
49
# File 'lib/mas/firm_result.rb', line 47

def types_of_advice
  TYPES_OF_ADVICE_FIELDS.select { |field| public_send(field).nonzero? }
end