class CivicInformation::RepresentativesResource::Official

Attributes

addresses[RW]
channels[RW]
emails[RW]
name[RW]
party[RW]
phones[RW]
photo_url[RW]
result_index[RW]
urls[RW]

Public Class Methods

new(result_index:, official_json:, parent_resource_id:) click to toggle source
# File lib/civic_information/models/representatives_resource/official.rb, line 6
def initialize(result_index:, official_json:, parent_resource_id:)
  @parent_resource_id = parent_resource_id
  @result_index = result_index
  @name = official_json["name"]
  @photo_url = official_json["photoUrl"]
  @party = official_json["party"]
  @phones = official_json["phones"] || []
  @emails = official_json["emails"] || []
  @urls = official_json["urls"] || []
  @channels = build_channels(official_json["channels"] || [])
  @addresses = build_addresses(official_json["address"] || [])
end

Public Instance Methods

offices() click to toggle source
# File lib/civic_information/models/representatives_resource/official.rb, line 19
def offices
  parent_resource.offices.select do |office|
    office.official_indices.include? result_index
  end
end

Private Instance Methods

build_addresses(address_json) click to toggle source
# File lib/civic_information/models/representatives_resource/official.rb, line 27
def build_addresses(address_json)
  address_json.map { |address| RepresentativesResource::Address.new(address) }
end
build_channels(channels_json) click to toggle source
# File lib/civic_information/models/representatives_resource/official.rb, line 31
def build_channels(channels_json)
  channels_json.map { |channel| RepresentativesResource::Channel.new(channel) }
end
parent_resource() click to toggle source
# File lib/civic_information/models/representatives_resource/official.rb, line 35
def parent_resource
  ObjectSpace._id2ref(@parent_resource_id)
end