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