Module: QueryStorage

Defined in:
lib/query_storage.rb,
lib/query_storage/version.rb

Defined Under Namespace

Classes: InstallGenerator

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.execute_sql(sql) ⇒ Object



6
7
8
9
# File 'lib/query_storage.rb', line 6

def execute_sql sql
  con = ActiveRecord::Base.connection
  con.select_all(sql)
end

.get_csv_data(input_data, has_header = false) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/query_storage.rb', line 16

def get_csv_data input_data, has_header=false
  csv_data = CSV.generate("", :headers => input_data[0].keys, :write_headers => has_header) do |csv|
    input_data.each_with_index do |record, index|
      csv << record
    end
  end
  return csv_data
end

.get_csv_data_array(list, key_order = nil) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/query_storage.rb', line 25

def get_csv_data_array list, key_order=nil
  key_order ||= list.map(&:keys).flatten.uniq
  arr = list.map do |hash|
    key_order.map{|key| hash[key]}
  end
  arr.unshift(key_order).map{|a| a.join(", ").insert(-1, "\n") }.join
end

.get_tsv_data(input_data, has_header = false) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/query_storage.rb', line 33

def get_tsv_data input_data, has_header=false
  tsv_data = CSV.generate("", :headers => input_data[0].keys, :write_headers => has_header, :col_sep => "\t") do |tsv|
    input_data.each_with_index do |record, index|
      tsv << record
    end
  end
  return tsv_data
end

.is_insert_or_update_sql(sql) ⇒ Object



11
12
13
# File 'lib/query_storage.rb', line 11

def is_insert_or_update_sql sql
  return sql.match(/\bupdate\b|\binsert\b/).present?
end