wise_gopher 0.2.1 → 0.2.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: 5c02358a22e231202bc1a07982b001432e9cf5ebbce2b0839a0370a77b2ce96d
4
- data.tar.gz: 5cfdbb8afdd8ba7d818eba10ad9d5351ff7f33bc18b9412cd4461d59e944ad4b
3
+ metadata.gz: 509914f52ec8f5902d4ef0dc1de802f8c80bba0d77477617259e2d143ab30637
4
+ data.tar.gz: 9b68edf080df0f2e74a9f8eab87fe620644ab5faee65e91170ccd8b9f6bcaf81
5
5
  SHA512:
6
- metadata.gz: da3df8754c9efbd3f942e61ab8e70fc6dfb9c3c349b5e537ab0b51268cd25fc490fee060d9cd33f5ded259fe42d014023a88d7a0db5295201231cdf9b47cbf1b
7
- data.tar.gz: 123df478769d1757782525b0d18ecd43a0ecc3fb7ea22cb31bdd750f6d1bb220d88aa33976f7140737b3dd4888d7e4db9139d4a5c77bad1ae4739465773c46cf
6
+ metadata.gz: 66ddaa1559ccc3c33654016de9e46bbbe6f4d7efce4bcfc42dc519218abc3b51d027ab982179868c3af8896be3e6365806f10167b4bbf2164bfbb7422ecc4894
7
+ data.tar.gz: 1c00e325744b986a070486540bf60ce42557256d39db27e588ffa31740cb9ae23115cb73f626ebef37803e01578e72bab900a1735b712f960dc056baa75d190a
data/Gemfile.lock CHANGED
@@ -1,18 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wise_gopher (0.2.1)
4
+ wise_gopher (0.2.2)
5
5
  activerecord (>= 5, < 7)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.1.4.1)
11
- activesupport (= 6.1.4.1)
12
- activerecord (6.1.4.1)
13
- activemodel (= 6.1.4.1)
14
- activesupport (= 6.1.4.1)
15
- activesupport (6.1.4.1)
10
+ activemodel (6.1.4.4)
11
+ activesupport (= 6.1.4.4)
12
+ activerecord (6.1.4.4)
13
+ activemodel (= 6.1.4.4)
14
+ activesupport (= 6.1.4.4)
15
+ activesupport (6.1.4.4)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
17
  i18n (>= 1.6, < 2)
18
18
  minitest (>= 5.1)
@@ -24,10 +24,10 @@ GEM
24
24
  concurrent-ruby (1.1.9)
25
25
  database_cleaner (1.99.0)
26
26
  diff-lcs (1.4.4)
27
- i18n (1.8.10)
27
+ i18n (1.9.1)
28
28
  concurrent-ruby (~> 1.0)
29
29
  method_source (1.0.0)
30
- minitest (5.14.4)
30
+ minitest (5.15.0)
31
31
  parallel (1.20.1)
32
32
  parser (3.0.1.1)
33
33
  ast (~> 2.4.1)
@@ -79,7 +79,7 @@ GEM
79
79
  concurrent-ruby (~> 1.0)
80
80
  unicode-display_width (2.0.0)
81
81
  yard (0.9.26)
82
- zeitwerk (2.5.1)
82
+ zeitwerk (2.5.4)
83
83
 
84
84
  PLATFORMS
85
85
  x86_64-darwin-21
@@ -99,4 +99,4 @@ DEPENDENCIES
99
99
  wise_gopher!
100
100
 
101
101
  BUNDLED WITH
102
- 2.2.22
102
+ 2.3.6
@@ -101,7 +101,6 @@ module WiseGopher
101
101
  def initialize(inputs = {})
102
102
  @inputs = inputs
103
103
  @binds = []
104
- @bind_symbol = WiseGopher.postgresql? ? +"$1" : "?"
105
104
  @query_prepared = false
106
105
 
107
106
  self.class.ensure_all_params_are_given(inputs)
@@ -180,16 +179,20 @@ module WiseGopher
180
179
 
181
180
  def use_bind_symbol
182
181
  if WiseGopher.postgresql?
183
- symbol = @bind_symbol.dup
182
+ symbol = bind_symbol.dup
184
183
 
185
- @bind_symbol.next!
184
+ bind_symbol.next!
186
185
 
187
186
  symbol
188
187
  else
189
- @bind_symbol
188
+ bind_symbol
190
189
  end
191
190
  end
192
191
 
192
+ def bind_symbol
193
+ @bind_symbol ||= WiseGopher.postgresql? ? +"$1" : "?"
194
+ end
195
+
193
196
  def ensure_row_class_is_declared
194
197
  raise RowClassIsMissing unless row_class
195
198
  end
@@ -3,21 +3,25 @@
3
3
  module WiseGopher
4
4
  # Cast query columns and transform value
5
5
  class Column
6
- attr_reader :name, :type, :alias
6
+ attr_reader :name, :alias
7
7
 
8
8
  def initialize(name, type_symbol, transform: nil, as: nil)
9
- @alias = as&.to_s.freeze || name.to_s.freeze
10
- @name = name.to_s.freeze
11
- @type = ActiveRecord::Type.lookup type_symbol
9
+ @alias = as&.to_s.freeze || name.to_s.freeze
10
+ @name = name.to_s.freeze
11
+ @type_symbol = type_symbol
12
12
  @transform = transform&.to_proc
13
13
  end
14
14
 
15
15
  def cast(value)
16
- casted_value = @type.deserialize(value)
16
+ casted_value = type.deserialize(value)
17
17
 
18
18
  @transform ? transform_value(casted_value) : casted_value
19
19
  end
20
20
 
21
+ def type
22
+ @type ||= ActiveRecord::Type.lookup type_symbol
23
+ end
24
+
21
25
  def define_getter(row_class)
22
26
  column = self
23
27
 
@@ -32,6 +36,8 @@ module WiseGopher
32
36
 
33
37
  private
34
38
 
39
+ attr_reader :type_symbol
40
+
35
41
  def transform_value(value)
36
42
  case @transform.arity
37
43
  when 0 then value.instance_exec(&@transform)
@@ -3,11 +3,11 @@
3
3
  module WiseGopher
4
4
  # Register query's params and build query's bind variables
5
5
  class Param
6
- attr_reader :name, :type
6
+ attr_reader :name
7
7
 
8
8
  def initialize(name, type_symbol, transform = nil)
9
- @name = name.to_s.freeze
10
- @type = ActiveRecord::Type.lookup type_symbol
9
+ @name = name.to_s.freeze
10
+ @type_symbol = type_symbol
11
11
  @transform = transform&.to_proc
12
12
  end
13
13
 
@@ -17,8 +17,14 @@ module WiseGopher
17
17
  ActiveRecord::Relation::QueryAttribute.new(name, prepared_value, type)
18
18
  end
19
19
 
20
+ def type
21
+ @type ||= ActiveRecord::Type.lookup type_symbol
22
+ end
23
+
20
24
  private
21
25
 
26
+ attr_reader :type_symbol
27
+
22
28
  def transform_value(value)
23
29
  case @transform.arity
24
30
  when 0 then value.instance_exec(&@transform)
@@ -4,7 +4,7 @@ module WiseGopher
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 2
7
- PATCH = 1
7
+ PATCH = 2
8
8
 
9
9
  STRING = [MAJOR, MINOR, PATCH].join(".")
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wise_gopher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - PageHey
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-19 00:00:00.000000000 Z
11
+ date: 2022-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -210,7 +210,7 @@ metadata:
210
210
  homepage_uri: https://github.com/Pagehey/wise_gopher
211
211
  source_code_uri: https://github.com/Pagehey/wise_gopher
212
212
  changelog_uri: https://github.com/Pagehey/wise_gopher/blob/main/CHANGELOG.md
213
- post_install_message:
213
+ post_install_message:
214
214
  rdoc_options: []
215
215
  require_paths:
216
216
  - lib
@@ -225,8 +225,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
225
  - !ruby/object:Gem::Version
226
226
  version: '0'
227
227
  requirements: []
228
- rubygems_version: 3.2.22
229
- signing_key:
228
+ rubygems_version: 3.1.6
229
+ signing_key:
230
230
  specification_version: 4
231
231
  summary: Encapsulate raw SQL queries and return result as plain Ruby objects, using
232
232
  ActiveRecord.