standard-procedure-signal 0.3.0 → 0.3.2

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: 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