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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8726a8dd720904305975d654dca7d89e6f15c5c
4
- data.tar.gz: 7a9756044cde8b2658ba19e1246f62cbae1bdf2c
3
+ metadata.gz: 6233affd9d5b14c8b5fde8c0069abcf18b169986
4
+ data.tar.gz: a96b1300af78232fbbc6711b94c77564a4d96d4e
5
5
  SHA512:
6
- metadata.gz: 19a3717cfaf7c5465a7c8c5ed289cfbcfe55bba972951a58a82665b38382a75009a1af08486de8b1a748e9240afa1679e31814f25d21116c8ee422872e0a4551
7
- data.tar.gz: 3b9e8c25f91d635e3225c47c5f36f1718879519791ce017ea620cfec1bd204e633104dda4fb6a361a00b191d841c44e4227e347dfa73ed3cada1ce30d760ce7a
6
+ metadata.gz: 21680690ae14a4f1ac2bc53037b66f032cd61a5cfc7ba330ee4c3a4dc8b6321184f885e92bc87ed2c97388a6a5f45b0d70da2a8f94f54dcea7307832ff023eb3
7
+ data.tar.gz: 7d8016fb14479175d9b7393b9ec345c94c87aaa1fa78a8deca7e8799942cd0eba7102ac1f66932e0eab0d678195b0bd43b0d4ec8295cee1e37a3ebf6130af5bc
data/.travis.yml CHANGED
@@ -14,7 +14,7 @@ gemfile:
14
14
  - gemfiles/5.0.gemfile
15
15
 
16
16
  rvm:
17
- - '2.3.3'
17
+ - '2.6.0'
18
18
 
19
19
  addons:
20
20
  postgresql: '9.4'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SqlQuery change log
2
2
 
3
- ## 0.7.4 / Unreleased
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.3 / 2023-02-04
13
+ ## 0.7.4 / 2024-04-20
14
14
 
15
- * [Fixed] when sql parameter had multiple whitespaces than prepared_for_logs was changing them
16
- to single space. https://github.com/sufleR/sql_query/pull/17
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 ||= ERB.new(File.read(file_path)).result(binding)
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
- sql
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]
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe SqlQuery do
6
- let(:options) { { email: "e@mail.dev ' " } }
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 options[:email]
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 '' '\n")
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 '' '\n")
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' => "e@mail.dev ' " }]
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' => "e@mail.dev ' " }]
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 '' '\n\n")
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 qote is inside parameter' do
208
- let(:options) { { email: "e@mail.dev ' " } }
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 new lines and changed parameter' do
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.3'
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', '<= 7.0'
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.3
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: 2023-02-04 00:00:00.000000000 Z
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