l43_core 0.2.2 → 0.2.3

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: 0aa197b658b531ac744c4b1abdbb65a6a9e458888719f94e1b4bb6b925c59a01
4
- data.tar.gz: 5dec25bfea72b6cad59c7129df6016e2468e5524af95b87569f67f8ac78dfea8
3
+ metadata.gz: ee9cdeab020aa5876a85d6634206ce6ef106e0c1eefeb924753f2dfa8df1cbca
4
+ data.tar.gz: d8ff86f355848b818aee9ca43e5c3641f72dda441ee2bf050e11983c16197147
5
5
  SHA512:
6
- metadata.gz: 7feb54949e60987eeab232f454888006372beeec962955e391fc8a11cc915a849c461905bdac979309de144f27afe7c62600f5e73bf009c9cc4719bdd9d59d57
7
- data.tar.gz: 4389d10b980e262493d862ac5e655ef586f03b49965573f38c706191977696dbdff371c84e4a06ebf7fa9d5d86396a5b005d9eedb2a787a04dc4a33c4afc4cab
6
+ metadata.gz: b8197be7b6b633cc7d69712d03db1f578b0ca6cd7c13d05882228c4d06f296d5d128fbb01da3735ec811b6318d49f335347c7d2e757be653fe6c39560dfdc332
7
+ data.tar.gz: 85ddf2ebdf2da119776fe575d1acc2f61e41098826cfd921ca306544c7710ff3ca5ae4c0a42859e3b2301d26c50f2347aafb5b2f5dc6ed3d791720b04b819f0f
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'object_extensions'
4
+ module L43
5
+ module Core
6
+ Object.extend ObjectExtensions
7
+ end
8
+ end
9
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../errors'
4
+ module L43
5
+ module Core
6
+ module ObjectExtensions
7
+
8
+ def instance_variables_set(*names, **from)
9
+ # check
10
+ names.each do
11
+ ivar = "@#{it}"
12
+ raise InstanceVariableOverride,
13
+ "must not override existing instance variable #{ivar}" if instance_variable_defined?(ivar)
14
+ raise MissingValue,
15
+ "must provide a value for instance variable #{ivar} in keyword args: #{from.inspect}" unless
16
+ from.has_key?(it)
17
+ end
18
+ # execute
19
+ names.each do
20
+ ivar = "@#{it}"
21
+ instance_variable_set(ivar, from[it])
22
+ end
23
+ end
24
+
25
+ def instance_variables_set!(*names, **from)
26
+ # check
27
+ names.each do
28
+ ivar = "@#{it}"
29
+ "must provide a value for instance variable #{ivar} in keyword args: #{from.inspect}" unless
30
+ from.has_key?(it)
31
+ end
32
+ # execute
33
+ names.each do
34
+ ivar = "@#{it}"
35
+ instance_variable_set(ivar, from[it])
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  module Core
5
- VERSION = "0.2.2"
5
+ VERSION = "0.2.3"
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/l43/errors.rb CHANGED
@@ -3,5 +3,9 @@
3
3
  module L43
4
4
  IllegalState = Class.new(RuntimeError)
5
5
  AbstractMethod = Class.new(RuntimeError)
6
+ module Core
7
+ InstanceVariableOverride = Class.new(RuntimeError)
8
+ MissingValue = Class.new(RuntimeError)
9
+ end
6
10
  end
7
11
  # SPDX-License-Identifier: AGPL-3.0-or-later
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-04-04 00:00:00.000000000 Z
10
+ date: 2026-04-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ostruct
@@ -36,8 +36,10 @@ files:
36
36
  - lib/l43/core/as_result.rb
37
37
  - lib/l43/core/enum.rb
38
38
  - lib/l43/core/enum/hash.rb
39
+ - lib/l43/core/extend_object.rb
39
40
  - lib/l43/core/forwarder.rb
40
41
  - lib/l43/core/none.rb
42
+ - lib/l43/core/object_extensions.rb
41
43
  - lib/l43/core/result.rb
42
44
  - lib/l43/core/result/constructors.rb
43
45
  - lib/l43/core/result/failure.rb