core-global 0.1.0 → 0.2.0

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: 4d3cf9534298027a9e23dfb39bbae763389ae6ce6dbbbe4a5962aa7fba8dcea2
4
- data.tar.gz: aa361166e276e8d06b98524d222ddd8cbef55c993fad98acab199dd831bcf597
3
+ metadata.gz: 5554989b8d85210df257092029af21aa849ac4a516f43d61ae59ddef316a4d06
4
+ data.tar.gz: c7b130dfe7f952c7806b4f25e89ac3bf1f0a70266cd23b31d05ff7b5997ee8a4
5
5
  SHA512:
6
- metadata.gz: de11cb6d0e92833eb04d2d2d435afd441d726b9bd5426bf6fca14231c50d2a333c91b8e332fb989ccb55c8d44dd3a7e48fbad3415b058687e0d5619249f4db6f
7
- data.tar.gz: fbe405bdb8aa9f65258aa86e7e35e1a14cd4234398e1c49ab70ea5894d9fad040ad111ed263738dbe7e57a956023c4788c395d01500cd96123a38e58545fe286
6
+ metadata.gz: 2d90bd2e5233c0264f374a9592ee58b2cc8950a99ac8a033108460ed4c06024fef0a4c2f6bfcf46e2f395339e5f01c1e7df0a8b5e7af01b8875280716e21ce93
7
+ data.tar.gz: f369aaac296c3132e050b68877350798f566dfe883b71522602e6e07252bb43f21c1daada9a821e67508bf7f546d822315a582e892c2d3dd18d7d471275aaecb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [v0.2.0](https://github.com/metabahn/corerb/releases/tag/2022-06-02)
2
+
3
+ *released on 2022-06-02*
4
+
5
+ * `fix` [#129](https://github.com/metabahn/corerb/pull/129) Accept all arguments in prepended finalize ([bryanp](https://github.com/bryanp))
6
+ * `chg` [#118](https://github.com/metabahn/corerb/pull/118) Allow global instance builders to be overridden ([bryanp](https://github.com/bryanp))
7
+
8
+ ## [v0.1.2](https://github.com/metabahn/corerb/releases/tag/2021-11-02)
9
+
10
+ *released on 2021-11-02*
11
+
12
+ * `chg` [#97](https://github.com/metabahn/corerb/pull/97) Designate internal state with leading and trailing double underscores ([bryanp](https://github.com/bryanp))
13
+
1
14
  ## [v0.1.0](https://github.com/metabahn/corerb/releases/tag/2021-07-07)
2
15
 
3
16
  *released on 2021-07-07*
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Core
4
4
  module Global
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
 
7
7
  def self.version
8
8
  VERSION
data/lib/is/global.rb CHANGED
@@ -10,35 +10,41 @@ module Is
10
10
  module Global
11
11
  extend Is::Extension
12
12
 
13
- extends :class do
14
- # [public] Return the current global instance.
13
+ extends :definition do
14
+ # [public] Build a global instance. This method can safely overrided on a global object and still be memoized.
15
15
  #
16
16
  def global
17
- @__global ||= new
17
+ new
18
18
  end
19
19
 
20
20
  # [public] Reset the global instance.
21
21
  #
22
22
  def reset
23
- remove_instance_variable(:@__global) if defined?(@__global)
23
+ remove_instance_variable(:@__global__) if defined?(@__global__)
24
24
  end
25
25
 
26
- def finalize
26
+ def finalize(...)
27
27
  singleton_class.def_delegators(:global, *public_instance_methods(false) - singleton_class.public_instance_methods(false))
28
28
  end
29
29
  end
30
30
 
31
- extends :class, prepend: true do
31
+ extends :definition, prepend: true do
32
+ # [public] Return the current global instance.
33
+ #
34
+ def global
35
+ @__global__ ||= super
36
+ end
37
+
32
38
  def method_added(name)
33
- if instance_variable_defined?(:@__finalized)
34
- remove_instance_variable(:@__finalized)
39
+ if instance_variable_defined?(:@__finalized__)
40
+ remove_instance_variable(:@__finalized__)
35
41
  end
36
42
 
37
43
  super
38
44
  end
39
45
 
40
46
  def method_missing(name, *args, &block)
41
- unless defined?(@__finalized)
47
+ unless defined?(@__finalized__)
42
48
  finalize
43
49
  end
44
50
 
@@ -58,7 +64,7 @@ module Is
58
64
  end
59
65
  end
60
66
 
61
- applied do
67
+ applies do
62
68
  singleton_class.extend(Forwardable)
63
69
  end
64
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: core-global
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-07 00:00:00.000000000 Z
11
+ date: 2022-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: core-extension
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.0'
19
+ version: '0.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.0'
26
+ version: '0.3'
27
27
  description: Patterns for responsible global state.
28
28
  email: bryan@metabahn.com
29
29
  executables: []
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  requirements: []
57
- rubygems_version: 3.2.15
57
+ rubygems_version: 3.3.13
58
58
  signing_key:
59
59
  specification_version: 4
60
60
  summary: Patterns for responsible global state.