class UkParliament::HouseMembers

Attributes

members[R]

Public Class Methods

new(house_id) click to toggle source
# File lib/uk_parliament/house_members.rb, line 10
def initialize(house_id)
  @house_id = house_id
  @members = []
  @config = configuration
  @backup = @config[:backup_before_write]
end

Protected Instance Methods

backup_file() click to toggle source

Back up an existing house's .json file.

# File lib/uk_parliament/house_members.rb, line 43
def backup_file
  filename = File.join(@config[:data_file_path], "#{@house_id}.json")

  if File.exist?(filename)
    backup_filename = "#{filename.split('.')[0]}-#{File.mtime(filename).strftime('%Y%m%d_%H%M%S')}.json"
    FileUtils.cp(filename, backup_filename)
    log.info("Previous '#{@house_id}' file was backed up")
  end
end
load_file() click to toggle source

Load a house's .json file from disk.

# File lib/uk_parliament/house_members.rb, line 20
def load_file
  filename = File.join(@config[:data_file_path], "#{@house_id}.json")
  raise "'#{filename}' Does not exist. Have you scraped '#{@house_id}' data yet? See README" unless File.exist?(filename)
  json = File.read(filename)
  @members = JSON.parse(json)
end
save_file() click to toggle source

Save a new version of a house's .json file to disk, optionally backing up any previous file beforehand.

# File lib/uk_parliament/house_members.rb, line 29
def save_file
  if @backup
    backup_file
  end

  filename = File.join(@config[:data_file_path], "#{@house_id}.json")
  File.open(filename, 'w') do |json_file|
    json_file.write(JSON.pretty_generate(@members))
  end

  log.info("'#{@house_id}' saved to file")
end