class CivicInformation::RepresentativesResource::Office

Attributes

division_id[RW]
levels[RW]
name[RW]
official_indices[RW]
result_index[RW]
roles[RW]
sources[RW]

Public Class Methods

new(result_index:, office_json:, parent_resource_id:) click to toggle source
# File lib/civic_information/models/representatives_resource/office.rb, line 6
def initialize(result_index:, office_json:, parent_resource_id:)
  @parent_resource_id = parent_resource_id
  @result_index = result_index
  @division_id = office_json['divisionId']
  @levels = office_json['levels'] || []
  @name = office_json['name']
  @roles = office_json['roles'] || []
  @sources = office_json['sources'] || []
  @official_indices = office_json['officialIndices'] || []
end

Public Instance Methods

division() click to toggle source
# File lib/civic_information/models/representatives_resource/office.rb, line 23
def division
  parent_resource.divisions.find do |division|
    division.open_civic_data_id == division_id
  end
end
officials() click to toggle source
# File lib/civic_information/models/representatives_resource/office.rb, line 17
def officials
  parent_resource.officials.select do |official|
    @official_indices.include? official.result_index
  end
end

Private Instance Methods

parent_resource() click to toggle source
# File lib/civic_information/models/representatives_resource/office.rb, line 31
def parent_resource
  ObjectSpace._id2ref(@parent_resource_id)
end