standard-procedure-signal 0.3.0 → 0.3.2

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: 616cd930586c5ccb4f1c765c62a7263d45905f5f28cbfe9eaa54aca3870d0b09
4
- data.tar.gz: 1fdcdfd26133fb21658a094b2375d7c033e11a232ca7ce0428044303c02150ad
3
+ metadata.gz: 19995436b649ca5ca87c533fc4707ef281158e3384c613fb5dc629c0e0574ca2
4
+ data.tar.gz: d51924be7a7dcd0b6fed98b49acd4ceb5c8f01cb77dd9ce41ae2b2a519ebf368
5
5
  SHA512:
6
- metadata.gz: 9e3bb22024d2892fb4201abc46632ceae09e3017247efd9b71658ed6b09cd28ec833761a59ea19f3ab5666a25f722701c64985b1eca37eb9ff89bf720c6b4ac5
7
- data.tar.gz: ba0e2b682ba308f69cab17e31e85cff00370b7c53e118c56ca6a7d270f603b70e08b2d2c1f7f458385128909dac2eec005420631f3c7c81a8dc6c40e455eb105
6
+ metadata.gz: 8a24239aaf5d2a113583e76ccfd8fb946f42c0cc304b1ff740a8d6a4104887fbff5b5ba3e8c61e46b31c52e91c62710e80304736dffa5ca902fabb41d358bf9b
7
+ data.tar.gz: 7504933e91c03b563339ad5698eb63edad5b17e0da21d96e2f8d2eb843fa92807732b1af15ce8b98de8383363bee13b29d4c6aa6d1a9b16c27143c0eedf6b40d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [0.3.2] - 2023-09-18
2
+
3
+ - Bugfix: Specs were not picking up that Array and Hash did not trigger updates correctly
4
+
5
+ ## [0.3.1] - 2023-09-16
6
+
7
+ - Array and Hash no longer wrap their contents in attributes.
8
+
1
9
  ## [0.3.0] - 2023-09-14
2
10
 
3
11
  - Added opal-rspec to ensure that everything works OK when running in a browser context
@@ -0,0 +1 @@
1
+ 153c47025ab6b8b78f755c53a3ccca764a71139dce98aa8b6ff34ee36fddc5c1609c085f7507015ee7dd6964c2235e58161bd76978356f0da27126472744ebbf
@@ -0,0 +1 @@
1
+ 1e37373463363cd7d38b86b85b7385054b58d37fc3d41bccd8d53020ef4a1d5d1357e9462a42cb37b1d265b08a7bcd9c0b851db3d8d28228da261fd9bb2718f8
@@ -7,45 +7,45 @@ module StandardProcedure
7
7
  def set(new_value)
8
8
  new_value = if new_value.nil?
9
9
  nil
10
- elsif new_value.respond_to? :map
11
- new_value.map { |i| Attribute.for i }
10
+ elsif new_value.is_a? Enumerable
11
+ new_value.dup
12
12
  else
13
- [Attribute.new(new_value)]
13
+ [new_value]
14
14
  end
15
15
  super new_value
16
16
  end
17
17
 
18
18
  def push item
19
- @value.push item
19
+ get.push item
20
20
  update_observers
21
21
  self
22
22
  end
23
23
  alias_method :<<, :push
24
24
 
25
25
  def pop
26
- item = @value.pop
26
+ item = get.pop
27
27
  update_observers
28
28
  item
29
29
  end
30
30
 
31
31
  def shift
32
- item = @value.shift
32
+ item = get.shift
33
33
  update_observers
34
34
  item
35
35
  end
36
36
 
37
37
  def unshift item
38
- @value.unshift Attribute.for(item)
38
+ get.unshift item
39
39
  update_observers
40
40
  self
41
41
  end
42
42
 
43
43
  def last
44
- @value.last
44
+ get.last
45
45
  end
46
46
 
47
47
  def each &block
48
- @value.each(&block)
48
+ get.each(&block)
49
49
  end
50
50
  end
51
51
  end
@@ -4,11 +4,11 @@ module StandardProcedure
4
4
  class Hash < Attribute
5
5
  include Enumerable
6
6
 
7
- def set(new_value)
7
+ def set new_value
8
8
  new_value = if new_value.nil?
9
9
  nil
10
- elsif new_value.respond_to? :transform_values
11
- new_value.transform_values { |value| Attribute.for value }
10
+ elsif new_value.respond_to? :to_hash
11
+ new_value.to_hash.dup
12
12
  else
13
13
  raise ArgumentError.new "#{new_value.inspect} is not recognised as a Hash"
14
14
  end
@@ -16,73 +16,73 @@ module StandardProcedure
16
16
  end
17
17
 
18
18
  def each &block
19
- @value.each(&block)
19
+ get.each(&block)
20
20
  end
21
21
 
22
22
  def keys
23
- @value.keys
23
+ get.keys
24
24
  end
25
25
 
26
26
  def include? key
27
- @value.include? key
27
+ get.include? key
28
28
  end
29
29
 
30
30
  def has_key? key
31
- @value.has_key? key
31
+ get.has_key? key
32
32
  end
33
33
 
34
- def has_value? value, attribute: false
35
- if attribute
36
- @value.has_value? value
37
- else
38
- @value.values.map(&:get).include? value
39
- end
34
+ def has_value? value
35
+ get.has_value? value
40
36
  end
41
37
 
42
38
  def values
43
- @value.values
39
+ get.values
44
40
  end
45
41
 
46
42
  def size
47
- @value.size
43
+ get.size
48
44
  end
49
45
  alias_method :length, :size
50
46
 
51
47
  def any?
52
- @value.any?
48
+ get.any?
53
49
  end
54
50
 
55
51
  def empty?
56
- @value.empty?
52
+ get.empty?
57
53
  end
58
54
 
59
55
  def [] key
60
- @value[key]
56
+ get[key]
61
57
  end
62
58
 
63
59
  def fetch key
64
- @value.fetch key
60
+ get.fetch key
65
61
  end
66
62
 
67
63
  def []= key, value
68
- @value[key] = value
64
+ get[key] = value
69
65
  update_observers
70
66
  end
71
67
 
72
68
  def store key, value
73
- @value.store key, value
69
+ get.store key, value
74
70
  update_observers
75
71
  end
76
72
 
77
73
  def delete key
78
- @value.delete key
74
+ get.delete key
79
75
  update_observers
80
76
  end
81
77
 
82
78
  def clear
83
- @value.clear
79
+ get.clear
84
80
  update_observers
85
81
  end
82
+
83
+ def to_hash
84
+ get
85
+ end
86
86
  end
87
87
  end
88
88
  end
@@ -9,8 +9,7 @@ module StandardProcedure
9
9
  when nil then nil
10
10
  when ::Time then new_value
11
11
  when ::Date then new_value.to_time
12
- when String then ::Time.new(new_value)
13
- else raise "#{new_value} not recognised"
12
+ else ::Time.new(new_value)
14
13
  end
15
14
  super new_value
16
15
  rescue => e
@@ -2,6 +2,6 @@
2
2
 
3
3
  module StandardProcedure
4
4
  module Signal
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: standard-procedure-signal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rahoul Baruah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-14 00:00:00.000000000 Z
11
+ date: 2023-09-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Observable attributes which adapt based upon their dependencies so we
14
14
  avoid unecessary updates
@@ -35,6 +35,8 @@ files:
35
35
  - checksums/standard-procedure-signal-0.2.0.gem.sha512
36
36
  - checksums/standard-procedure-signal-0.2.1.gem.sha512
37
37
  - checksums/standard-procedure-signal-0.3.0.gem.sha512
38
+ - checksums/standard-procedure-signal-0.3.1.gem.sha512
39
+ - checksums/standard-procedure-signal-0.3.2.gem.sha512
38
40
  - lib/standard_procedure/signal.rb
39
41
  - lib/standard_procedure/signal/attribute.rb
40
42
  - lib/standard_procedure/signal/attribute/array.rb