spark-component 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +2 -2
- data/lib/spark/component/element.rb +26 -9
- data/lib/spark/component/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: 76d73723f8423e6333f1ff46727f363096ad11cb3dc526c531ddbc8e8c30f0eb
|
4
|
+
data.tar.gz: e302e38f303eb1d0c5ed8d8f591583b591dec48cf006d196194f014236a2899c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eec683787307ba6b95a59ee247ed138539375d96aab59b365785ddc23db4d98bde114df66d8a0b16df813861c7a6e6a75c8883a7573c60d5f0b7080996683c27
|
7
|
+
data.tar.gz: af9031efb9b8ef31188bdd60d45025f359ccf201866b8a433c1ea1cfd299fb40ac0de40c15b019e747de55fcbec766ceff2ff66ca2846649f4f8a1e3d500a347
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# v1.1.1 - 2020-01-14
|
2
|
+
|
3
|
+
- Fix: When a nested element is referenced it will trigger the parent to yield
|
4
|
+
its block, ensuring that the nested element reference will be instantiated
|
5
|
+
if it is used in the parent's block.
|
6
|
+
- Fix: Elements now have a `blank?` method and `present?` returns `!blank?`. It
|
7
|
+
is important to remember, `blank?` and `present?` return false if an element
|
8
|
+
yields nothing. To check for the existence of an element instance, use `nil?`.
|
9
|
+
- New: Elements now have access to their own name with the `_name` method.
|
10
|
+
|
1
11
|
# v1.1.0 - 2020-01-10
|
2
12
|
|
3
13
|
- New: Class method `attribute_default_group` makes it easy to set defaults for multiple attributes based on a single component argument. It's great for theming, where setting `theme: :notice` can set attributes for color, layout, etc.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
spark-component (1.1.
|
4
|
+
spark-component (1.1.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -42,7 +42,7 @@ GEM
|
|
42
42
|
erubi (~> 1.4)
|
43
43
|
rails-dom-testing (~> 2.0)
|
44
44
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
45
|
-
actionview-component (1.
|
45
|
+
actionview-component (1.7.0)
|
46
46
|
activejob (6.0.1)
|
47
47
|
activesupport (= 6.0.1)
|
48
48
|
globalid (>= 0.3.6)
|
@@ -10,7 +10,7 @@ module Spark
|
|
10
10
|
def self.included(base)
|
11
11
|
base.extend(Spark::Component::Element::ClassMethods)
|
12
12
|
|
13
|
-
%i[_parent _block view_context].each do |name|
|
13
|
+
%i[_name _parent _block view_context].each do |name|
|
14
14
|
base.define_method(:"#{name}=") { |val| instance_variable_set(:"@#{name}", val) }
|
15
15
|
base.define_method(:"#{name}") { instance_variable_get(:"@#{name}") }
|
16
16
|
end
|
@@ -25,6 +25,7 @@ module Spark
|
|
25
25
|
# - view_context, sets the view context for an element (in Rails)
|
26
26
|
#
|
27
27
|
unless attrs.nil? || attrs.empty?
|
28
|
+
@_name = attrs.delete(:_name)
|
28
29
|
@_parent = attrs.delete(:_parent)
|
29
30
|
@_block = attrs.delete(:_block)
|
30
31
|
@view_context = attrs.delete(:_view)
|
@@ -37,13 +38,18 @@ module Spark
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def render_self
|
40
|
-
return @content
|
41
|
+
return @content if rendered?
|
41
42
|
|
42
43
|
@content = render_block(@view_context, &_block)
|
43
44
|
validate! if defined?(ActiveModel::Validations)
|
45
|
+
@rendered = true
|
44
46
|
@content
|
45
47
|
end
|
46
48
|
|
49
|
+
def rendered?
|
50
|
+
@rendered == true
|
51
|
+
end
|
52
|
+
|
47
53
|
def render_block(view, &block)
|
48
54
|
block_given? ? view.capture(self, &block) : nil
|
49
55
|
end
|
@@ -53,7 +59,11 @@ module Spark
|
|
53
59
|
end
|
54
60
|
|
55
61
|
def present?
|
56
|
-
!
|
62
|
+
!blank?
|
63
|
+
end
|
64
|
+
|
65
|
+
def blank?
|
66
|
+
self.yield.nil? || self.yield.strip.empty?
|
57
67
|
end
|
58
68
|
|
59
69
|
private
|
@@ -169,15 +179,22 @@ module Spark
|
|
169
179
|
#
|
170
180
|
def define_element(name:, plural:, multiple:, klass:)
|
171
181
|
define_method_if_able(name) do |attributes = nil, &block|
|
172
|
-
|
182
|
+
# When initializing an element, blocks or arguments are passed.
|
183
|
+
# If an element is being referenced without these, it will return its instance
|
184
|
+
# This allows the elemnet method to initailize the object and return its instance
|
185
|
+
# for template rendering.
|
186
|
+
unless block || attributes
|
187
|
+
|
188
|
+
# If an element is called, it will only exist if its parent's block has been exectued
|
189
|
+
# Be sure the block has been executed so that sub elements are initialized
|
190
|
+
self.yield if is_a?(Spark::Component::Element::Base) && !rendered?
|
191
|
+
|
192
|
+
return get_element_variable(multiple ? plural : name)
|
193
|
+
end
|
173
194
|
|
174
195
|
attributes ||= {}
|
175
196
|
attributes = merge_element_attribute_default(name, attributes)
|
176
|
-
attributes.merge!(
|
177
|
-
_parent: self,
|
178
|
-
_block: block,
|
179
|
-
_view: view_context
|
180
|
-
)
|
197
|
+
attributes.merge!(_name: name, _parent: self, _block: block, _view: view_context)
|
181
198
|
|
182
199
|
element = klass.new(attributes)
|
183
200
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spark-component
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview-component
|