keynote 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/keynote/rumble.rb +19 -9
- data/lib/keynote/version.rb +1 -1
- data/spec/rumble_spec.rb +38 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbd02a5e8d588001102132e7864b294e34290700
|
4
|
+
data.tar.gz: d8db8a485b076d070774031959cecbc2f0b9fb68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2033a7f5c59e895ac0d8f31202591f02f8d4f5f750203b940696f029968a14c0f59d0d8bba990f7f3ef95bb39358605b961326b869b074366210411ef7b80c9a
|
7
|
+
data.tar.gz: d683f2f2259fbff0ad2ab280ce5300093f25ed4e6bc68a13a5901a7d422fe0764a61dd50f6fb74de5babe3ed582772d47c224d16262218d9000f40a9506797e9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## v1.1.0
|
2
|
+
* Rumble: Fix bug in v1.0.0 that caused an exception if the user passed a `nil`
|
3
|
+
value for an attribute.
|
4
|
+
* Rumble: Add support for `aria` attr hashes, behaving the same way as `data`.
|
5
|
+
|
1
6
|
## v1.0.0
|
2
7
|
* Add support for Rails 5.1.
|
3
8
|
* Fix all Ruby warnings generated by Keynote itself.
|
data/lib/keynote/rumble.rb
CHANGED
@@ -267,14 +267,8 @@ module Keynote
|
|
267
267
|
content = nil
|
268
268
|
end
|
269
269
|
|
270
|
-
|
271
|
-
|
272
|
-
attrs = attrs.dup
|
273
|
-
attrs.delete(:data).each do |key, value|
|
274
|
-
attrs[:"data-#{key}"] = value.to_s
|
275
|
-
end
|
276
|
-
end
|
277
|
-
|
270
|
+
attrs = flatten_attr_hash(attrs, :aria)
|
271
|
+
attrs = flatten_attr_hash(attrs, :data)
|
278
272
|
merge_attributes(attrs) if attrs
|
279
273
|
|
280
274
|
if block_given?
|
@@ -321,9 +315,25 @@ module Keynote
|
|
321
315
|
|
322
316
|
def inspect; to_s.inspect end
|
323
317
|
|
318
|
+
private
|
319
|
+
|
320
|
+
# If the given attrs contain an `aria` or `data` hash, flatten its
|
321
|
+
# contents into hyphenated attribute names.
|
322
|
+
def flatten_attr_hash(attrs, name)
|
323
|
+
if attrs && attrs[name].is_a?(Hash)
|
324
|
+
attrs = attrs.dup
|
325
|
+
attrs.delete(name).each do |key, value|
|
326
|
+
next if value.nil?
|
327
|
+
attrs[:"#{name}-#{key}"] = value.to_s
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
attrs
|
332
|
+
end
|
333
|
+
|
324
334
|
def attrs_to_s
|
325
335
|
attributes.inject("") do |res, (name, value)|
|
326
|
-
next unless value
|
336
|
+
next res unless value
|
327
337
|
|
328
338
|
value =
|
329
339
|
if value.is_a?(Array)
|
data/lib/keynote/version.rb
CHANGED
data/spec/rumble_spec.rb
CHANGED
@@ -72,7 +72,34 @@ class TestRumble < klass
|
|
72
72
|
HTML
|
73
73
|
|
74
74
|
assert_rumble str do
|
75
|
-
div data: {
|
75
|
+
div data: {
|
76
|
+
modal: true,
|
77
|
+
safe: '"""'.html_safe,
|
78
|
+
absent: nil,
|
79
|
+
unsafe: '"""'
|
80
|
+
}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_string_aria
|
85
|
+
assert_rumble '<div aria="whatever"></div>' do
|
86
|
+
div aria: "whatever"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_hash_aria
|
91
|
+
str = <<-HTML
|
92
|
+
<div aria-modal="true" aria-safe=""""" aria-unsafe=""&quot;"">
|
93
|
+
</div>
|
94
|
+
HTML
|
95
|
+
|
96
|
+
assert_rumble str do
|
97
|
+
div aria: {
|
98
|
+
modal: true,
|
99
|
+
safe: '"""'.html_safe,
|
100
|
+
absent: nil,
|
101
|
+
unsafe: '"""'
|
102
|
+
}
|
76
103
|
end
|
77
104
|
end
|
78
105
|
|
@@ -87,6 +114,16 @@ class TestRumble < klass
|
|
87
114
|
end
|
88
115
|
end
|
89
116
|
|
117
|
+
def test_nil_attr
|
118
|
+
str = <<-HTML
|
119
|
+
<div id="id" class="class"></div>
|
120
|
+
HTML
|
121
|
+
|
122
|
+
assert_rumble str do
|
123
|
+
div id: "id", title: nil, class: "class"
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
90
127
|
def test_several
|
91
128
|
str = <<-HTML
|
92
129
|
<p>Hello</p>
|