fbe 0.48.6 → 0.48.7

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fbe/conclude.rb +13 -1
  3. data/lib/fbe.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb9882f8daa663f05cdb5c37b6cf409cc8d6d2c8d5865008e3cccfffd7055f25
4
- data.tar.gz: e3a2965c7a4075963eae7b2ff954cc6cc2392d44ab8ec63b3e49fc3b0dc8261b
3
+ metadata.gz: cc71748bcfb59be79127dfc1373ee3dfe84e14e9843583322d89f95bef91969f
4
+ data.tar.gz: 26450c3e7d5e30e7e745464ef6b478fe99dbef34484401d6ca6fffabeb1bc5f0
5
5
  SHA512:
6
- metadata.gz: f838c7e4eeaf7b8f8b8cecf6c826383063c88f505bd4fab9dd8b92ccc4c20780d37b837b2deffc8da825d2ed41e60fe1fa70cb8482f083fe52938cb583eac949
7
- data.tar.gz: 77c3fc4a2a21f6c57bda5828d88ae1cfcb04754989e82ae6ff2903d0d11c04c958e9dbc99314fc54d718f75edb4fafc61b8cff2f00367f9d6653d59bb62929d3
6
+ metadata.gz: 979762592673b5f9ea6136185c339a5be403e164d5f7d614fdd2d2bdec646e69f274325fc2991b5085bbc3e7017329a5e3be96925dc7d2d65efe64b0813428e7
7
+ data.tar.gz: d8103526278d4b6c6e1c84b34ef358d310b02add12c5ee001223568dd65626c122ba1440074dcc8a043922ff19fd8458747119c41cb699c0229b33bf780e0c59
data/lib/fbe/conclude.rb CHANGED
@@ -231,6 +231,13 @@ class Fbe::Conclude
231
231
  # calls the provided block for custom processing, and sets metadata
232
232
  # on the new fact.
233
233
  #
234
+ # A property that is absent on the previous fact is skipped (its "[]"
235
+ # accessor returns nil). Factbase's "(as new old)" rewrite is only visible
236
+ # through method access (prev.new), while "[]" returns the raw stored value
237
+ # (see #595); when such a rewrite is in effect the method accessor returns
238
+ # the rewritten value, so we honor it. All values are still copied for
239
+ # genuinely multi-valued properties (see #520).
240
+ #
234
241
  # @param [Factbase::Fact] fact The fact to populate
235
242
  # @param [Factbase::Fact] prev The previous fact to copy from
236
243
  # @yield [Factbase::Fact, Factbase::Fact] New fact and the previous fact
@@ -248,7 +255,12 @@ class Fbe::Conclude
248
255
  # end
249
256
  def fill(fact, prev)
250
257
  @follows.each do |follow|
251
- prev[follow.to_s].each do |v|
258
+ key = follow.to_s
259
+ values = prev[key]
260
+ next if values.nil?
261
+ rewritten = prev.public_send(follow)
262
+ values = [rewritten] unless values.first == rewritten
263
+ values.each do |v|
252
264
  fact.public_send(:"#{follow}=", v)
253
265
  end
254
266
  end
data/lib/fbe.rb CHANGED
@@ -9,6 +9,6 @@
9
9
  # Copyright:: Copyright (c) 2024-2026 Zerocracy
10
10
  # License:: MIT
11
11
  module Fbe
12
- VERSION = '0.48.6' unless const_defined?(:VERSION)
12
+ VERSION = '0.48.7' unless const_defined?(:VERSION)
13
13
  class Error < StandardError; end
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fbe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.48.6
4
+ version: 0.48.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko