execute_sql 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -0
- data/lib/execute_sql.rb +11 -2
- data/lib/execute_sql/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31b3c1b47cb6e87cce5d7386c7a40fea2ef2e2ac61089162105cc679629d9885
|
4
|
+
data.tar.gz: 0ea679069626e874e931c7c9b9ca09d360926f9bff18529b935c7f679aed0593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7ea65b2a1c8f57824aa3b16dd89435bf23a82a0d08d1531d989d848e3e688db57d802015e9ebcf66b4fe0b22118095e188b1a69108ef944c66272302a2a5d86
|
7
|
+
data.tar.gz: fac08ad05b1106ab61355f374c8759c9768c5c499fbba26d0b3410ff852f673e376ac9728f70da4710e6484d27594ca01062ccb1bad7b1d1360411a66848ef52
|
data/README.md
CHANGED
@@ -24,6 +24,13 @@ ExecuteSQL.run "select count(*) from users where age > 50"
|
|
24
24
|
# or with different mode
|
25
25
|
# default mode: :print
|
26
26
|
|
27
|
+
# return array of HashWithIndifferentAccess objects
|
28
|
+
# please remember that arrays can be manipulated with Enumerable methods, but this is *not* a chainable ARel relation
|
29
|
+
ExecuteSQL.run "select * from users where age > 50", mode: :array
|
30
|
+
|
31
|
+
# return array of User objects
|
32
|
+
ExecuteSQL.run "select * from users where age > 50", mode: :array, klass: User
|
33
|
+
|
27
34
|
# return single value
|
28
35
|
ExecuteSQL.run "select count(*) from users where age > 50", mode: :single
|
29
36
|
|
@@ -64,6 +71,13 @@ In rails console use helper: `execute_sql "some SQL"`.
|
|
64
71
|
|
65
72
|
Or `ExecuteSql.run "some SQL"` or `ExecuteSQL.run "some SQL"`.
|
66
73
|
|
74
|
+
## TODO
|
75
|
+
|
76
|
+
- import SQL files
|
77
|
+
- travis CI
|
78
|
+
- verify with older rails
|
79
|
+
- more specs
|
80
|
+
|
67
81
|
## Contributing
|
68
82
|
|
69
83
|
You are welcome to contribute.
|
@@ -71,3 +85,11 @@ You are welcome to contribute.
|
|
71
85
|
## License
|
72
86
|
|
73
87
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
88
|
+
|
89
|
+
Some pieces of code I took from another my gem: https://github.com/igorkasyanchuk/rails_db.
|
90
|
+
|
91
|
+
## Contributors
|
92
|
+
|
93
|
+
- pjforde1978
|
94
|
+
|
95
|
+
Big thank you.
|
data/lib/execute_sql.rb
CHANGED
@@ -22,13 +22,22 @@ require "execute_sql/railtie"
|
|
22
22
|
module ExecuteSql
|
23
23
|
module ConsoleMethods
|
24
24
|
|
25
|
-
def execute_sql(sql, mode: :print)
|
25
|
+
def execute_sql(sql, mode: :print, klass: HashWithIndifferentAccess)
|
26
26
|
sql_query = ExecuteSql::SqlQuery.new("#{sql}".strip).execute
|
27
27
|
rows = sql_query.data.rows
|
28
28
|
cols = sql_query.data.columns
|
29
29
|
case mode.to_s
|
30
30
|
when 'print'
|
31
31
|
puts Terminal::Table.new(rows: rows, headings: cols)
|
32
|
+
when 'array'
|
33
|
+
result = rows.map do |row|
|
34
|
+
record = klass.new
|
35
|
+
cols.each_with_index.map do |col, index|
|
36
|
+
record[col] = row[index]
|
37
|
+
end
|
38
|
+
record
|
39
|
+
end
|
40
|
+
result
|
32
41
|
when 'raw'
|
33
42
|
rows
|
34
43
|
when 'single'
|
@@ -48,4 +57,4 @@ module ExecuteSql
|
|
48
57
|
extend ConsoleMethods
|
49
58
|
end
|
50
59
|
|
51
|
-
ExecuteSQL = ExecuteSql
|
60
|
+
ExecuteSQL = ExecuteSql
|
data/lib/execute_sql/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: execute_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Kasyanchuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: '1.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
|
-
rubygems_version: 3.0.
|
116
|
+
rubygems_version: 3.0.6
|
117
117
|
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: Execute SQL directly in rails console or in the code.
|