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 +4 -4
- data/lib/trials/utils/sqls.rb +11 -59
- data/lib/trials.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 809340a33b98fbad348d852817f5cf96e02ad21d7dfbfcc767e7c04a7db32358
|
4
|
+
data.tar.gz: a3fdf41a7cfff4aa83189e363fec665e78b608e86db51d73342f391352a10b72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d8e3bd235ceb82f6544ec6b016ec9e73f0721693902eaa451441b651d15cb3b31b2e0e0343cc79542f82dfb1a17f2a07127fe7ae5d19bf03e613932f446b30e
|
7
|
+
data.tar.gz: fa0849b0e9b847c33ab1d22eeba40a45211080dd2a4bf5c3f148bfb4ea68c32549e2c5910a85adeb80c4d6ea3c138505618cc94803963090e3d223ef576a2130
|
data/lib/trials/utils/sqls.rb
CHANGED
@@ -1,70 +1,22 @@
|
|
1
|
-
def
|
2
|
-
|
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
|
33
|
-
|
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
|
43
|
-
|
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
|
56
|
-
|
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(
|
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