core-global 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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.