l43_open_object 0.2.6 → 0.2.8

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: 71afaead90d1f21653a928d14a8948e9676d508ea56a5a92fad363b011bbe4e8
4
- data.tar.gz: d0e8d1f0095363572d872e098f9413ac3389c73ee6f7efd653f0e7eb4b9493fb
3
+ metadata.gz: 240068b0df2618888660d12f9f1b8d032087e3063f6e0198a46046da794bdb1c
4
+ data.tar.gz: 92ebe8107c88a91de4e2a034d58a7a3fa357f3a2f24a97fca31aa90b88016fa6
5
5
  SHA512:
6
- metadata.gz: '00558fbf5c9e24810c3dc9c0a4f7180161aa76499a42de0228d598ba6c32d0b76a8e6663e562219abfc1cd7d89650ee35f4c8aa0d81d7aa5eefe8da1c3557405'
7
- data.tar.gz: 6c459d479172b15b3296de2051b09dae2a7cb2fd51ad93158b40098ed56345f7adf977020cb59ac948015aea1eb18705c8aaeac60a14b13295292420e97e8764
6
+ metadata.gz: 0e406c09bda90dea1580a1b7e072ec009f245488fdaa25b6895395bf9bbbbb6cb47bcbb6ab9b3726f4bdfaecb738d425ab9a99fdc66f59d667199010551af1fb
7
+ data.tar.gz: deccbd050e3d939344d52d833cb42d0b84518504cde9fd83a79376f28d42626465c6e48c7ac9a835dbd2a38b85cdb96f67db99dc5a478cf26443d3e745d58a2b
@@ -6,7 +6,9 @@ module L43
6
6
  module OpenObject
7
7
  module Behavior
8
8
  extend Forwardable
9
- def_delegators :to_h, :fetch, :slice
9
+ def_delegators :to_h, :[], :each, :fetch, :slice
10
+
11
+ include Enumerable
10
12
 
11
13
  def ==(other)
12
14
  return false unless self.class === other
@@ -41,6 +43,11 @@ module L43
41
43
  end
42
44
  end
43
45
 
46
+ def update_attribute_or(attribute, value, &blk)
47
+ return update_attribute(attribute, value) if self[attribute].nil?
48
+ update_attribute(attribute, blk.(self[attribute], value))
49
+ end
50
+
44
51
  def update_attribute_unless(attribute, condition, &blk)
45
52
  if condition
46
53
  self
@@ -4,7 +4,7 @@ require_relative 'open_object/initializer'
4
4
  require_relative 'open_object/behavior'
5
5
  module L43
6
6
  module OpenObject
7
- VERSION = "0.2.6"
7
+ VERSION = "0.2.8"
8
8
 
9
9
  def attributes(*atts, **defaults, &blk)
10
10
  attr_reader(*atts)
data/lib/l43.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'l43/open_object'
4
+ module L43
5
+ end
4
6
  # SPDX-License-Identifier: AGPL-3.0-or-later
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_open_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober