ar_virtual_field 1.0.1 → 1.0.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: 54a2b022d2a554b686ac9dc2c2d0849a244c60d1d8811c2528ee31958837d6f0
4
- data.tar.gz: 7fb5c86b8e5778120576fd0247e7dbc51a3a012f25730bef87efa111c242ff57
3
+ metadata.gz: cc1842359c967930d4e5a6c9e45c69897d064ed8b35d8a4d5ce9e86985796794
4
+ data.tar.gz: ac6c1e0d05446db0ddc88d369bd799ceb384c0a141774ab3c7b43bcb0f3506da
5
5
  SHA512:
6
- metadata.gz: 2fab350ea04e2c2367f30d7a3550203353abfdd18aecd97f47e6c1bf5023ce7ed21db3ab5aee0113b380c0bffd90689c22563b31bfbf319fc264f68338fd0738
7
- data.tar.gz: ed2bfd0a02456f01e304aa1aa4518d7579e22d3d325bfff509a8c88d1b846851c1d499462aa954aae80dde82f39ed5674775c079a264f14c40ffbec0f3282517
6
+ metadata.gz: 6fbc0e108fc8ccfc8ef5889b11b5b66326cfeb57399c686b93139fbb92b126df8196add0fab124d237291dcbf405d43651057c161d5f533b849495217eb6fcbd
7
+ data.tar.gz: ffd519768bc3fcf5f4b7abd5dacd030e6265f1cbaf07d92d7137b7b6aa94f1d02dc8294c86e644ec6a559b71e95891f5c2f23e786051880b63ca11d2086a2b88
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ArVirtualField
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
5
5
  end
@@ -59,18 +59,17 @@ module ArVirtualField
59
59
  default = HelperMethods.wrap_to_lambda(default)
60
60
  end
61
61
 
62
- select = HelperMethods.wrap_to_lambda(select)
63
-
64
- select_lambda = -> do
65
- if default
66
- Arel::Nodes::NamedFunction.new('COALESCE', [select.(), default.()])
67
- else
68
- select.()
69
- end
70
- end
62
+ select_lambda = HelperMethods.wrap_to_lambda(select)
71
63
 
72
64
  if scope
73
- @ar_virtual_fields[name.to_sym] = -> { Arel.sql(HelperMethods.table_with_column(name)) }
65
+ field_name = Arel.sql(HelperMethods.table_with_column(name))
66
+
67
+ @ar_virtual_fields[name.to_sym] =
68
+ if default
69
+ -> { Arel::Nodes::NamedFunction.new('COALESCE', [field_name, default.()]) }
70
+ else
71
+ -> { field_name }
72
+ end
74
73
 
75
74
  scope_name = :"_scope_#{name}"
76
75
 
@@ -91,6 +90,10 @@ module ArVirtualField
91
90
  SQL
92
91
  end)
93
92
  else
93
+ if default
94
+ select_lambda = -> { Arel::Nodes::NamedFunction.new('COALESCE', [select_lambda.(), default.()]) }
95
+ end
96
+
94
97
  @ar_virtual_fields[name.to_sym] = -> { select_lambda.() }
95
98
 
96
99
  scope(:"with_#{name}", -> do
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_virtual_field
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Egorov
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-06 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -69,7 +68,6 @@ licenses:
69
68
  metadata:
70
69
  homepage_uri: https://github.com/emfy0/ar_virtual_field
71
70
  source_code_uri: https://github.com/emfy0/ar_virtual_field
72
- post_install_message:
73
71
  rdoc_options: []
74
72
  require_paths:
75
73
  - lib
@@ -84,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
82
  - !ruby/object:Gem::Version
85
83
  version: '0'
86
84
  requirements: []
87
- rubygems_version: 3.5.22
88
- signing_key:
85
+ rubygems_version: 3.6.8
89
86
  specification_version: 4
90
87
  summary: Provide an easy mechanism to define virtual fields within an ActiveRecord
91
88
  model