sql_query 0.7.3 → 0.7.4
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/.travis.yml +1 -1
- data/CHANGELOG.md +5 -4
- data/lib/sql_query.rb +8 -6
- data/spec/sql_query_spec.rb +16 -17
- data/sql_query.gemspec +2 -2
- metadata +2 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6233affd9d5b14c8b5fde8c0069abcf18b169986
|
4
|
+
data.tar.gz: a96b1300af78232fbbc6711b94c77564a4d96d4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21680690ae14a4f1ac2bc53037b66f032cd61a5cfc7ba330ee4c3a4dc8b6321184f885e92bc87ed2c97388a6a5f45b0d70da2a8f94f54dcea7307832ff023eb3
|
7
|
+
data.tar.gz: 7d8016fb14479175d9b7393b9ec345c94c87aaa1fa78a8deca7e8799942cd0eba7102ac1f66932e0eab0d678195b0bd43b0d4ec8295cee1e37a3ebf6130af5bc
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# SqlQuery change log
|
2
2
|
|
3
|
-
## 0.7.
|
3
|
+
## 0.7.5 / Unreleased
|
4
4
|
|
5
5
|
* [Added]
|
6
6
|
|
@@ -10,10 +10,11 @@
|
|
10
10
|
|
11
11
|
* [Fixed]
|
12
12
|
|
13
|
-
## 0.7.
|
13
|
+
## 0.7.4 / 2024-04-20
|
14
14
|
|
15
|
-
* [
|
16
|
-
|
15
|
+
* [Added] Remove upper restriction for rails
|
16
|
+
|
17
|
+
## 0.7.3 no changes
|
17
18
|
|
18
19
|
## 0.7.2 / 2022-01-23
|
19
20
|
|
data/lib/sql_query.rb
CHANGED
@@ -34,7 +34,7 @@ class SqlQuery
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def sql
|
37
|
-
@sql ||=
|
37
|
+
@sql ||= prepare_query(false)
|
38
38
|
end
|
39
39
|
|
40
40
|
def pretty_sql
|
@@ -46,11 +46,7 @@ class SqlQuery
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def prepared_for_logs
|
49
|
-
|
50
|
-
.split("'")
|
51
|
-
.each_with_index
|
52
|
-
.map { |s, index| index % 2 == 0 ? s.gsub(/(\n|\s)+/, ' ') : s }
|
53
|
-
.join("'")
|
49
|
+
@sql_for_logs ||= prepare_query(true)
|
54
50
|
end
|
55
51
|
|
56
52
|
def partial(partial_name, partial_options = {})
|
@@ -79,6 +75,12 @@ class SqlQuery
|
|
79
75
|
|
80
76
|
private
|
81
77
|
|
78
|
+
def prepare_query(for_logs)
|
79
|
+
query_template = File.read(file_path)
|
80
|
+
query_template = query_template.gsub(/(\n|\s)+/, ' ') if for_logs
|
81
|
+
ERB.new(query_template).result(binding)
|
82
|
+
end
|
83
|
+
|
82
84
|
def split_to_path_and_name(file)
|
83
85
|
if file.is_a?(Symbol)
|
84
86
|
['', file.to_s]
|
data/spec/sql_query_spec.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe SqlQuery do
|
6
|
-
let(:options) { { email:
|
6
|
+
let(:options) { { email: 'e@mail.dev' } }
|
7
7
|
let(:file_name) { :get_player_by_email }
|
8
8
|
let(:query) { described_class.new(file_name, options) }
|
9
9
|
|
@@ -13,7 +13,7 @@ describe SqlQuery do
|
|
13
13
|
|
14
14
|
describe '#initialize' do
|
15
15
|
it 'sets instance variables for all options' do
|
16
|
-
expect(query.instance_variable_get(:@email)).to eq
|
16
|
+
expect(query.instance_variable_get(:@email)).to eq 'e@mail.dev'
|
17
17
|
end
|
18
18
|
|
19
19
|
context 'when options are set not in parentheses' do
|
@@ -82,7 +82,7 @@ describe SqlQuery do
|
|
82
82
|
describe '#sql' do
|
83
83
|
it 'returns query string' do
|
84
84
|
expect(query.sql)
|
85
|
-
.to eq("SELECT *\nFROM players\nWHERE email = 'e@mail.dev
|
85
|
+
.to eq("SELECT *\nFROM players\nWHERE email = 'e@mail.dev'\n")
|
86
86
|
end
|
87
87
|
|
88
88
|
context 'when file is .erb.sql' do
|
@@ -98,7 +98,7 @@ describe SqlQuery do
|
|
98
98
|
describe '#pretty_sql' do
|
99
99
|
it 'returns query string' do
|
100
100
|
expect(query.pretty_sql)
|
101
|
-
.to eq("SELECT *\nFROM players\nWHERE email = 'e@mail.dev
|
101
|
+
.to eq("SELECT *\nFROM players\nWHERE email = 'e@mail.dev'\n")
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -107,7 +107,7 @@ describe SqlQuery do
|
|
107
107
|
it 'returns explain string' do
|
108
108
|
expect(explain).to include 'EXPLAIN for:'
|
109
109
|
expect(explain).to include 'FROM players'
|
110
|
-
expect(explain).to include "WHERE email = 'e@mail.dev
|
110
|
+
expect(explain).to include "WHERE email = 'e@mail.dev'"
|
111
111
|
expect(explain).to include 'QUERY PLAN'
|
112
112
|
expect(explain).to include 'Seq Scan on players'
|
113
113
|
end
|
@@ -116,7 +116,7 @@ describe SqlQuery do
|
|
116
116
|
describe '#execute' do
|
117
117
|
before do
|
118
118
|
ActiveRecord::Base.connection.execute(
|
119
|
-
"INSERT INTO players (email) VALUES ('e@mail.dev
|
119
|
+
"INSERT INTO players (email) VALUES ('e@mail.dev')"
|
120
120
|
)
|
121
121
|
end
|
122
122
|
|
@@ -127,7 +127,7 @@ describe SqlQuery do
|
|
127
127
|
end
|
128
128
|
|
129
129
|
it 'returns data from database' do
|
130
|
-
expect(query.execute).to eq [{ 'email' =>
|
130
|
+
expect(query.execute).to eq [{ 'email' => 'e@mail.dev' }]
|
131
131
|
end
|
132
132
|
|
133
133
|
context 'when prepare argument is true' do
|
@@ -148,7 +148,7 @@ describe SqlQuery do
|
|
148
148
|
describe '#exec_query' do
|
149
149
|
before do
|
150
150
|
ActiveRecord::Base.connection.execute(
|
151
|
-
"INSERT INTO players (email) VALUES ('e@mail.dev
|
151
|
+
"INSERT INTO players (email) VALUES ('e@mail.dev')"
|
152
152
|
)
|
153
153
|
end
|
154
154
|
|
@@ -159,7 +159,7 @@ describe SqlQuery do
|
|
159
159
|
end
|
160
160
|
|
161
161
|
it 'returns data from database' do
|
162
|
-
expect(query.exec_query).to eq [{ 'email' =>
|
162
|
+
expect(query.exec_query).to eq [{ 'email' => 'e@mail.dev' }]
|
163
163
|
end
|
164
164
|
|
165
165
|
context 'when prepare argument is true' do
|
@@ -181,7 +181,7 @@ describe SqlQuery do
|
|
181
181
|
let(:file_name) { :get_player_by_email_with_template }
|
182
182
|
it 'resolves partials as parts of sql queries' do
|
183
183
|
expect(query.sql)
|
184
|
-
.to eq("SELECT *\nFROM players\nWHERE players.email = 'e@mail.dev
|
184
|
+
.to eq("SELECT *\nFROM players\nWHERE players.email = 'e@mail.dev'\n\n")
|
185
185
|
end
|
186
186
|
|
187
187
|
context 'when partial name is string with file path' do
|
@@ -197,19 +197,18 @@ describe SqlQuery do
|
|
197
197
|
end
|
198
198
|
|
199
199
|
describe '#prepared_for_logs' do
|
200
|
-
let(:options) { { email: 'e@mail.dev ' } }
|
201
|
-
|
202
200
|
it 'returns string without new lines' do
|
203
201
|
expect(query.prepared_for_logs)
|
204
|
-
.to eq("SELECT * FROM players WHERE email = 'e@mail.dev
|
202
|
+
.to eq("SELECT * FROM players WHERE email = 'e@mail.dev' ")
|
205
203
|
end
|
206
204
|
|
207
|
-
context 'when
|
208
|
-
let(:options) { { email:
|
205
|
+
context 'when embedded params have multiple whitespaces' do
|
206
|
+
let(:options) { { email: ' e@mail.dev ' } }
|
207
|
+
let(:query) { described_class.new(file_name, options) }
|
209
208
|
|
210
|
-
it 'returns string without
|
209
|
+
it 'returns string without multiple whitespaces except embedded params' do
|
211
210
|
expect(query.prepared_for_logs)
|
212
|
-
.to eq("SELECT * FROM players WHERE email = 'e@mail.dev
|
211
|
+
.to eq("SELECT * FROM players WHERE email = ' e@mail.dev ' ")
|
213
212
|
end
|
214
213
|
end
|
215
214
|
end
|
data/sql_query.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'sql_query'
|
8
|
-
spec.version = '0.7.
|
8
|
+
spec.version = '0.7.4'
|
9
9
|
spec.authors = ['sufleR']
|
10
10
|
spec.email = ['szymon.fracczak@gmail.com']
|
11
11
|
spec.summary = 'Ruby gem to load and execute SQL queries from `.sql.erb` templates'
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.required_ruby_version = '>= 1.9.3'
|
25
25
|
|
26
|
-
spec.add_dependency 'activerecord', '>= 3.2'
|
26
|
+
spec.add_dependency 'activerecord', '>= 3.2'
|
27
27
|
spec.add_development_dependency 'appraisal'
|
28
28
|
spec.add_development_dependency 'bundler'
|
29
29
|
spec.add_development_dependency 'pg', '~> 0.18'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sql_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sufleR
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
|
-
- - "<="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '7.0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '3.2'
|
30
|
-
- - "<="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '7.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: appraisal
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|