class Inscriber::Downloader

Public Class Methods

new(database) click to toggle source
# File lib/inscriber/downloader.rb, line 5
def initialize(database)
  @db          ||= connect_to_db(database)
  @database    = database
  @result_hash = Hash.new(0)
end

Public Instance Methods

download() click to toggle source
# File lib/inscriber/downloader.rb, line 11
def download
  @database.tables.each do |table|
    record_hash = Hash.new(0)
    records = records_from_table(table[:name]).all
    unless records.empty?
      records.each do |record|
        record_hash[record[original_column_name(table[:name])]] = generate_hash_from_record(record, table)
      end
      @result_hash[table[:name]] = record_hash
    end
  end
  @result_hash
end

Private Instance Methods

connect_to_db(database) click to toggle source
# File lib/inscriber/downloader.rb, line 27
def connect_to_db(database)
  database.connection
end
generate_hash_from_record(record, table) click to toggle source
# File lib/inscriber/downloader.rb, line 35
def generate_hash_from_record(record, table)
  record.select{ |k,v| table[:columns].include? k.to_s }
    .inject({}){ |h, (k,v)| h[k.to_s] = v; h }.to_h
end
records_from_table(table_name) click to toggle source
# File lib/inscriber/downloader.rb, line 31
def records_from_table(table_name)
  @db.from(table_name).where(locale: @database.source_lang)
end