Class: FirmResult
- Inherits:
-
Object
- Object
- FirmResult
- Defined in:
- lib/mas/firm_result.rb
Constant Summary collapse
- ADVICE_TYPE_NOT_SELECTED_VALUE =
0- LESS_THAN_FIFTY_K_ID =
1- DIRECTLY_MAPPED_FIELDS =
[ :address_line_one, :address_line_two, :address_town, :address_county, :address_postcode, :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, :ethical_investing_flag, :sharia_investing_flag, :languages ]
- 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
- #advisers ⇒ Object
- #includes_advice_type?(advice_type) ⇒ Boolean
-
#initialize(data) ⇒ FirmResult
constructor
A new instance of FirmResult.
- #minimum_fixed_fee? ⇒ Boolean
- #minimum_pot_size? ⇒ Boolean
- #minimum_pot_size_id ⇒ Object
- #offices ⇒ Object
- #telephone_number ⇒ Object
- #types_of_advice ⇒ Object
Constructor Details
#initialize(data) ⇒ FirmResult
Returns a new instance of FirmResult.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mas/firm_result.rb', line 45 def initialize(data) source = data['_source'] @id = source['_id'] @name = source['registered_name'] @advisers = source['advisers'] @total_advisers = source['advisers'].count @closest_adviser = data['sort'].first @telephone_number = source['telephone_number'] @offices = source['offices'] @total_offices = source['offices'].count (DIRECTLY_MAPPED_FIELDS + TYPES_OF_ADVICE_FIELDS).each do |field| instance_variable_set("@#{field}", source[field.to_s]) end end |
Instance Method Details
#advisers ⇒ Object
61 62 63 |
# File 'lib/mas/firm_result.rb', line 61 def advisers @advisers.map { |adviser_data| AdviserResult.new(adviser_data) } end |
#includes_advice_type?(advice_type) ⇒ Boolean
71 72 73 |
# File 'lib/mas/firm_result.rb', line 71 def includes_advice_type?(advice_type) public_send(advice_type) > ADVICE_TYPE_NOT_SELECTED_VALUE end |
#minimum_fixed_fee? ⇒ Boolean
79 80 81 |
# File 'lib/mas/firm_result.rb', line 79 def minimum_fixed_fee? minimum_fixed_fee && minimum_fixed_fee.nonzero? end |
#minimum_pot_size? ⇒ Boolean
87 88 89 |
# File 'lib/mas/firm_result.rb', line 87 def minimum_pot_size? minimum_pot_size_id > LESS_THAN_FIFTY_K_ID end |
#minimum_pot_size_id ⇒ Object
83 84 85 |
# File 'lib/mas/firm_result.rb', line 83 def minimum_pot_size_id investment_sizes.first end |
#offices ⇒ Object
65 66 67 68 69 |
# File 'lib/mas/firm_result.rb', line 65 def offices @offices .map { |office_data| OfficeResult.new(office_data) } .sort { |a, b| a.address_town <=> b.address_town } end |
#telephone_number ⇒ Object
91 92 93 94 95 |
# File 'lib/mas/firm_result.rb', line 91 def telephone_number return nil unless @telephone_number UKPhoneNumbers.format(@telephone_number) end |
#types_of_advice ⇒ Object
75 76 77 |
# File 'lib/mas/firm_result.rb', line 75 def types_of_advice TYPES_OF_ADVICE_FIELDS.select { |field| public_send(field).nonzero? } end |