trials 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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