l43_open_object 0.2.2 → 0.2.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
  SHA256:
3
- metadata.gz: b3fd83f7a3355c0740be183a64fb5dc69b57829ac953f08258aeb83b1d9fcdad
4
- data.tar.gz: 2c93657c412878854ebc9e371e6a57a66d2ce0594a6cfe07a52fdda8d6ecb43e
3
+ metadata.gz: e1227726f23fd0f9b45d1e3077ddaeb2ed1385c78b5646df59a17c0f7096a9c8
4
+ data.tar.gz: 95647d6001f64f30a1cd942ecb3c12475c6d98aab9bf8e7cfe5316e3ffb16c2a
5
5
  SHA512:
6
- metadata.gz: 33fb3f9a98acf4cd0ed278ce46d16fcb92bb01d581ab161c271999bee012bec0a3c6716adc9e921ac4cbc9e7619ffc6db67d465f6df65b87c28d7ce523fdd3be
7
- data.tar.gz: 150a6bf8b7db2c5d18e9306ba6b08636bc5e699a22e0204389ecf9b2084f58554c607a16082215a549b88e1f483194e59d40979337f4d1cb355e601a442fac23
6
+ metadata.gz: 190e2cbde8e61f4e2cbd5848144e58777bf5eec867d8471b565d77b0ee4af2a787e3ea8e1d04a22022fc957a464d73c4c0aeb918480dbe257804ffabbde38797
7
+ data.tar.gz: 436fb3e39930fac9547a62addfdde953376ee1161e71045100c5190e092747089d2c3cfd518473ce9b20535f8c0df9a88901e6e611f76035dd5ca1aa905c49fc
@@ -21,9 +21,28 @@ module L43
21
21
  end
22
22
  end
23
23
 
24
- def update_attribute(attribute, &blk)
25
- raise ArgumentError, "cannot update attribute #{attribute.inspect} without a block" unless blk
26
- update(attribute => blk.(to_h[attribute]))
24
+ def update_attribute(attribute, value=nil, &blk)
25
+ if blk
26
+ update(attribute => blk.(to_h[attribute]))
27
+ else
28
+ update(attribute => value)
29
+ end
30
+ end
31
+
32
+ def update_attribute_if(attribute, condition, &blk)
33
+ if condition
34
+ update_attribute(attribute, condition, &blk)
35
+ else
36
+ self
37
+ end
38
+ end
39
+
40
+ def update_attribute_unless(attribute, condition, &blk)
41
+ if condition
42
+ self
43
+ else
44
+ update(attribute => blk.(self))
45
+ end
27
46
  end
28
47
  end
29
48
  end
@@ -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.2"
7
+ VERSION = "0.2.4"
8
8
 
9
9
  def attributes(*atts, **defaults, &blk)
10
10
  attr_reader(*atts)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_open_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-03-07 00:00:00.000000000 Z
10
+ date: 2026-03-28 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: |-
13
13
  When using the class method `attributes` in a class you get:
@@ -37,7 +37,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 3.3.0
40
+ version: 4.0.1
41
41
  required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - ">="