usable 3.7.1 → 3.8.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 +4 -4
- data/lib/usable/config.rb +8 -0
- data/lib/usable/struct.rb +14 -3
- data/lib/usable/version.rb +1 -1
- data/lib/usable.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8075d1fbe92a5e6264d68e0ef7c7e874def4d8f1
|
4
|
+
data.tar.gz: eeec86f688c53eb9a3f19c5a0e938e5f4e3a1d6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45639fe02b2890ede739f810f805a796b60e67b5a79c14d719ae9f17a9d427644df81c9cc3a4cdfb867665ce1627bccc72bbdadf84b743502641a65442d9f865
|
7
|
+
data.tar.gz: 50a8adb07f611ab908ecf6cb2b6d81c17aad65b1036a0557ec56fdda66856e837e5ea41da35d9761900de84d072d3dde279bf19e7dd0219345f5b3b478468b04
|
data/lib/usable/config.rb
CHANGED
@@ -43,6 +43,14 @@ module Usable
|
|
43
43
|
to_h.merge(other)
|
44
44
|
end
|
45
45
|
|
46
|
+
# @param other [Hash] to update ourselves with
|
47
|
+
def merge!(other)
|
48
|
+
other.each do |key, val|
|
49
|
+
@spec[key] = val
|
50
|
+
end
|
51
|
+
self
|
52
|
+
end
|
53
|
+
|
46
54
|
def method_missing(key, *args, &block)
|
47
55
|
if block
|
48
56
|
@lazy_loads << key
|
data/lib/usable/struct.rb
CHANGED
@@ -2,10 +2,9 @@ module Usable
|
|
2
2
|
def self.Struct(attributes = {})
|
3
3
|
Class.new do
|
4
4
|
extend Usable
|
5
|
-
|
6
5
|
self.usables = Usable::Config.new(attributes)
|
7
|
-
|
8
|
-
attributes.keys.each do |key|
|
6
|
+
define_usable_accessors
|
7
|
+
attributes.keys.map(&:to_sym).each do |key|
|
9
8
|
define_method(key) { @attrs[key] }
|
10
9
|
define_method("#{key}=") { |new_val| @attrs[key] = new_val }
|
11
10
|
end
|
@@ -15,6 +14,18 @@ module Usable
|
|
15
14
|
def initialize(attrs = {})
|
16
15
|
@attrs = usables.merge(attrs)
|
17
16
|
end
|
17
|
+
|
18
|
+
def [](key)
|
19
|
+
@attrs[key]
|
20
|
+
end
|
21
|
+
|
22
|
+
def []=(key, val)
|
23
|
+
@attrs[key] = val
|
24
|
+
end
|
25
|
+
|
26
|
+
def each(&block)
|
27
|
+
@attrs.each(&block)
|
28
|
+
end
|
18
29
|
end
|
19
30
|
end
|
20
31
|
end
|
data/lib/usable/version.rb
CHANGED
data/lib/usable.rb
CHANGED
@@ -88,6 +88,13 @@ module Usable
|
|
88
88
|
super
|
89
89
|
end
|
90
90
|
|
91
|
+
def define_usable_accessors
|
92
|
+
usables.to_h.keys.each do |key|
|
93
|
+
define_singleton_method(key) { usables[key] }
|
94
|
+
define_singleton_method("#{key}=") { |new_val| usables[key] = new_val }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
91
98
|
def usables
|
92
99
|
@usables ||= Config.new
|
93
100
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|