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