trials 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 574015ebe59522f5c8269f49baa0f94c8ffd4510a992f75b03b3db0d02e4aede
4
- data.tar.gz: 2b2d695cb64e9a2da338726f61d206e46b3b9bf693f57a7395a1185a8a58cc6d
3
+ metadata.gz: 809340a33b98fbad348d852817f5cf96e02ad21d7dfbfcc767e7c04a7db32358
4
+ data.tar.gz: a3fdf41a7cfff4aa83189e363fec665e78b608e86db51d73342f391352a10b72
5
5
  SHA512:
6
- metadata.gz: 59eb34e02c11c2f3b26f00597eae0b3c55ba0c7299203928a69da64f64ee287a83278ab8f5ac9fe50ef73e39635ed7d6500b6d4b72eb3f98c86b8b35383ad624
7
- data.tar.gz: 413eea94a00660664f744f3baca2e891ce5db54f4548437d110da0df99405f3e51f439b15a4dc5663037bf5ad5eadf936b26fc110335f1979a579c658c84d82e
6
+ metadata.gz: 5d8e3bd235ceb82f6544ec6b016ec9e73f0721693902eaa451441b651d15cb3b31b2e0e0343cc79542f82dfb1a17f2a07127fe7ae5d19bf03e613932f446b30e
7
+ data.tar.gz: fa0849b0e9b847c33ab1d22eeba40a45211080dd2a4bf5c3f148bfb4ea68c32549e2c5910a85adeb80c4d6ea3c138505618cc94803963090e3d223ef576a2130
@@ -1,70 +1,22 @@
1
- def hashes_to_sql_temp_table(hashes)
2
- attrs = uniq_hash_keys(hashes)
3
-
4
- attr_chars = attrs
5
- .map { |a| "#{a} varchar" }
6
- .join(', ')
7
-
8
- value_tuples = hashes
9
- .map { |s| '(' + attrs.map { |a| "'#{s.dig(a) }'" }.join(', ') + ')' }
10
- .join(",\n")
11
-
12
- <<~SQL
13
- create temp table seed_data (
14
- #{attr_chars}
15
- );
16
-
17
- insert into seed_data values
18
- #{value_tuples};
19
- SQL
20
- end
21
-
22
- def create_db(name)
23
- db_loc = results_path("#{name}.db")
24
-
25
- raise 'db already exists' if File.exist?(db_loc)
26
-
27
- db = SQLite3::Database.new(db_loc)
1
+ def db(db_name = nil)
2
+ db_name ||= 'data.db'
3
+ db = SQLite3::Database.new(tmp_path(db_name))
28
4
  db.results_as_hash = true
29
5
  db
30
6
  end
31
7
 
32
- def use_db(name)
33
- db_loc = seeds_path("#{name}.db")
34
-
35
- raise 'no db exists' unless File.exist?(db_loc)
36
-
37
- db = SQLite3::Database.new(db_loc)
38
- db.results_as_hash = true
39
- db
8
+ def create_db(db_name = nil)
9
+ db(db_name)
40
10
  end
41
11
 
42
- def create_table(db, table, **attrs)
43
- should_log = attrs.delete(:log)
44
- attrs = attrs.map { |k, v| " #{k} #{v}" }.join(",\n")
45
- sql = <<~SQL
46
- create table #{table} (
47
- #{attrs}
48
- );
49
- SQL
50
-
51
- log sql if should_log
52
- db.execute sql
12
+ def get_db(db_name = nil)
13
+ db(db_name)
53
14
  end
54
15
 
55
- def insert_into_db(db, table, **attrs)
56
- should_log = attrs.delete(:log)
57
- keys_group = "(#{attrs.keys.join(', ')})"
58
- values_group = "(#{(['?'] * attrs.values.length).join(', ')})"
59
- sql = <<~SQL
60
- insert into #{table} #{keys_group}
61
- values #{values_group}
62
- SQL
63
-
64
- log sql if should_log
65
- db.execute sql, attrs.values
16
+ def import_csv_into_db(db_name = 'data.db', table, csv)
17
+ system("sqlite3 -csv #{tmp_path(db_name)} '.import #{seed_path(csv)} #{table}'")
66
18
  end
67
19
 
68
- def query_db(db, query)
69
- db.execute(query)
20
+ def query_db(db_name = nil, query)
21
+ db(db_name).execute(query).map(&:symbolize_keys)
70
22
  end
data/lib/trials.rb CHANGED
@@ -17,6 +17,7 @@ require 'sqlite3'
17
17
  require 'street_address'
18
18
  require 'tty-table'
19
19
  require 'yaml'
20
+ require 'rack'
20
21
 
21
22
  require_relative 'trials/utils/various'
22
23
  require_relative 'trials/utils/csvs'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trials
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - grahamotte