bogo 0.2.15 → 0.2.16
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/bogo/lazy.rb +12 -15
- data/lib/bogo/memoization.rb +1 -1
- data/lib/bogo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '005490ecb547fbeb1d4b941787e8a963c3c17ac8403527deb3ed6b33614312da'
|
|
4
|
+
data.tar.gz: f6c08b295196223458fa8649fd2224d8f46cd0e641545bed5c4173bdccda8c88
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a501ec13801d316df3d9fccec43bb86dbb6b3cb4847fc6645b266aeff41bebd51107090b733287650badbe038cfeb37cb59a6254fa366b74a65a3c4dce4b38e9
|
|
7
|
+
data.tar.gz: 25ff9327f54f0b8f3d4602e9834d87548a959f14a767fa9243d75037fe542efbc83eae002ca6dd9e2e461b2dda8c474d84bbcb4f0b1699aebfe551b5f86ae251
|
data/CHANGELOG.md
CHANGED
data/lib/bogo/lazy.rb
CHANGED
|
@@ -11,19 +11,16 @@ module Bogo
|
|
|
11
11
|
def self.included(klass)
|
|
12
12
|
klass.include(MonitorMixin)
|
|
13
13
|
klass.instance_variable_set(:@calling_on_missing, false)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
unlazy_initialize(*args, **opts, &block)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @return [Monitor] Monitor instance for synchronization
|
|
17
|
+
def _mon
|
|
18
|
+
@mon ||= Monitor.new
|
|
22
19
|
end
|
|
23
20
|
|
|
24
21
|
# @return [Smash] argument hash
|
|
25
22
|
def data
|
|
26
|
-
synchronize do
|
|
23
|
+
_mon.synchronize do
|
|
27
24
|
unless(@data)
|
|
28
25
|
@data = Smash.new
|
|
29
26
|
self.class.attributes.each do |key, value|
|
|
@@ -38,7 +35,7 @@ module Bogo
|
|
|
38
35
|
|
|
39
36
|
# @return [Smash] updated data
|
|
40
37
|
def dirty
|
|
41
|
-
synchronize do
|
|
38
|
+
_mon.synchronize do
|
|
42
39
|
unless(@dirty)
|
|
43
40
|
@dirty = Smash.new
|
|
44
41
|
end
|
|
@@ -48,7 +45,7 @@ module Bogo
|
|
|
48
45
|
|
|
49
46
|
# @return [Smash] current data state
|
|
50
47
|
def attributes
|
|
51
|
-
synchronize { data.merge(dirty) }
|
|
48
|
+
_mon.synchronize { data.merge(dirty) }
|
|
52
49
|
end
|
|
53
50
|
|
|
54
51
|
# Create new instance
|
|
@@ -56,7 +53,7 @@ module Bogo
|
|
|
56
53
|
# @param args [Hash]
|
|
57
54
|
# @return [self]
|
|
58
55
|
def load_data(args={})
|
|
59
|
-
synchronize do
|
|
56
|
+
_mon.synchronize do
|
|
60
57
|
args = args.to_smash
|
|
61
58
|
@data = Smash.new
|
|
62
59
|
self.class.attributes.each do |name, options|
|
|
@@ -83,7 +80,7 @@ module Bogo
|
|
|
83
80
|
#
|
|
84
81
|
# @return [self]
|
|
85
82
|
def valid_state
|
|
86
|
-
synchronize do
|
|
83
|
+
_mon.synchronize do
|
|
87
84
|
data.merge!(dirty)
|
|
88
85
|
dirty.clear
|
|
89
86
|
@_checksum = Digest::SHA256.hexdigest(MultiJson.dump(data.inspect).to_s)
|
|
@@ -96,7 +93,7 @@ module Bogo
|
|
|
96
93
|
# @param attr [String, Symbol] name of attribute
|
|
97
94
|
# @return [TrueClass, FalseClass] model or attribute is dirty
|
|
98
95
|
def dirty?(attr=nil)
|
|
99
|
-
synchronize do
|
|
96
|
+
_mon.synchronize do
|
|
100
97
|
if(attr)
|
|
101
98
|
dirty.has_key?(attr)
|
|
102
99
|
else
|
|
@@ -122,7 +119,7 @@ module Bogo
|
|
|
122
119
|
|
|
123
120
|
# @return [Hash]
|
|
124
121
|
def to_h
|
|
125
|
-
synchronize do
|
|
122
|
+
_mon.synchronize do
|
|
126
123
|
Hash[
|
|
127
124
|
attributes.map{|k,v|
|
|
128
125
|
[k, v.is_a?(Array) ?
|
data/lib/bogo/memoization.rb
CHANGED
data/lib/bogo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bogo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.16
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Roberts
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-11-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: hashie
|