props_template 1.0.3 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f31ca5a3810b9348f75dae05f2b5cb8927faaedf321a4a565914b5760968090c
4
- data.tar.gz: 6709d2fc54d81aaf2977158bffc0754089343e7aa8d32d50cbfb01a54a5b289b
3
+ metadata.gz: 3dc53f3b47d33c98b7fc04e82ef1bcc711529a30c5631627ba2bbd55eeb47ded
4
+ data.tar.gz: 4c13c7771bfc1ef0d2a2848b0c24d03f029f47751625f18151c23702d0a42376
5
5
  SHA512:
6
- metadata.gz: 3d3c08391669747b2b3cecfae77e4c47893a1dd887e21ab999a56e7c5e58a3afed3ccdc8147f4bed75fe1c33a3b903975357e00b515e8f445c5f1d1fef9049bc
7
- data.tar.gz: da253f3b0d7f903ef0683990e270a1e5f4140c57416d023cce6645ac0156580a66145cc1061cf74d0f2b300d3e8e570d6bc3683d2aa2f88f5427496ddf43fbb3
6
+ metadata.gz: c08a1f263224c6b4902ac849d7bded7b8e22d4520f3520a82cf7eac231f645ee9109dc8ac95649e2b8f5695c369f71868687482802113712daa3b18cd261bfbe
7
+ data.tar.gz: 6b3b68733f7b740be73438aff7602d30919798aa2d7693bc36437b096ff1e88a4414d4e93618ca90a74627897f96bc8ec781f0e84718b79a5ac925096a829900
@@ -63,6 +63,21 @@ module Props
63
63
  nil
64
64
  end
65
65
 
66
+ def set_value!(key, value)
67
+ if @scope == :array
68
+ raise InvalidScopeForObjError.new("Attempted to set! on an array! scope")
69
+ end
70
+
71
+ if @scope.nil?
72
+ @scope = :object
73
+ @stream.push_object
74
+ end
75
+
76
+ @stream.push_value(value, format_key(key))
77
+
78
+ nil
79
+ end
80
+
66
81
  def handle_collection_item(collection, item, index, options)
67
82
  @item_context = item
68
83
 
@@ -124,7 +139,7 @@ module Props
124
139
  [value, value]
125
140
  end
126
141
 
127
- set!(
142
+ set_value!(
128
143
  key,
129
144
  object.is_a?(Hash) ? object.fetch(attribute) : object.public_send(attribute)
130
145
  )
@@ -27,7 +27,7 @@ module Props
27
27
  end
28
28
 
29
29
  def set_content!(options = {})
30
- return super if !@em.has_extensions(options)
30
+ return super if options.empty? || !@em.has_extensions(options)
31
31
 
32
32
  @em.handle(options, item_context) do
33
33
  yield
@@ -46,6 +46,10 @@ module Props
46
46
  yield
47
47
  end
48
48
 
49
+ def set_value!(key, value)
50
+ nil
51
+ end
52
+
49
53
  def set!(key, options = {}, &block)
50
54
  return if @found_block || !block && !options.is_a?(Props::Options)
51
55
 
@@ -1,3 +1,3 @@
1
1
  module Props
2
- VERSION = "1.0.3".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
@@ -67,8 +67,10 @@ module Props
67
67
  @builder.item_context = found_item
68
68
  set!(key, found_options, &found_block)
69
69
  end
70
- else
70
+ elsif block || options.is_a?(Props::Options)
71
71
  @builder.set!(key, options, &block)
72
+ else
73
+ @builder.set_value!(key, options)
72
74
  end
73
75
  end
74
76
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: props_template
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johny Ho