class FirmResult

Constants

ADVICE_TYPE_NOT_SELECTED_VALUE
DIRECTLY_MAPPED_FIELDS
LESS_THAN_FIFTY_K_ID
TYPES_OF_ADVICE_FIELDS

Attributes

closest_adviser[RW]
id[R]
name[R]
total_advisers[R]
total_offices[R]

Public Class Methods

new(data) click to toggle source
# File lib/mas/firm_result.rb, line 50
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'] ? data['sort'].first : 0
  @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

Public Instance Methods

advisers() click to toggle source
# File lib/mas/firm_result.rb, line 66
def advisers
  @advisers.map { |adviser_data| AdviserResult.new(adviser_data) }
end
includes_advice_type?(advice_type) click to toggle source
# File lib/mas/firm_result.rb, line 76
def includes_advice_type?(advice_type)
  public_send(advice_type) > ADVICE_TYPE_NOT_SELECTED_VALUE
end
minimum_fixed_fee?() click to toggle source
# File lib/mas/firm_result.rb, line 84
def minimum_fixed_fee?
  minimum_fixed_fee && minimum_fixed_fee.nonzero?
end
minimum_pot_size?() click to toggle source
# File lib/mas/firm_result.rb, line 92
def minimum_pot_size?
  minimum_pot_size_id > LESS_THAN_FIFTY_K_ID
end
minimum_pot_size_id() click to toggle source
# File lib/mas/firm_result.rb, line 88
def minimum_pot_size_id
  investment_sizes.first
end
offices() click to toggle source
# File lib/mas/firm_result.rb, line 70
def offices
  @offices
    .map  { |office_data| OfficeResult.new(office_data) }
    .sort { |a, b| a.address_town <=> b.address_town }
end
types_of_advice() click to toggle source
# File lib/mas/firm_result.rb, line 80
def types_of_advice
  TYPES_OF_ADVICE_FIELDS.select { |field| public_send(field).nonzero? }
end