deckar01-task_list 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bower.json +1 -1
- data/lib/task_list/filter.rb +9 -6
- data/lib/task_list/version.rb +1 -1
- data/test/task_list/filter_test.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98c115a88c39b3864da7fbfa85b51ad7e087fa20
|
4
|
+
data.tar.gz: c3046d2ebb7b25f698aa236f04a5ae390c5d7cc5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7e395593cb4e2dd7e3adfed007bb362989d8c3aedf21783200bfb65bb6bc38813a1920cc499524a219621f97222d53e21f8fbea3532c2df2d2c4b469eb802d8
|
7
|
+
data.tar.gz: 40e6d857004eeddcf1c58c7794d4486bb2675f599c383b418d8a5faa684699e7f80f969643fadb33a991264e0d8f9d06c997c2af56185a5d2f408617a78bd150
|
data/bower.json
CHANGED
data/lib/task_list/filter.rb
CHANGED
@@ -54,7 +54,7 @@ class TaskList
|
|
54
54
|
|
55
55
|
class XPathSelectorFunction
|
56
56
|
def self.task_list_item(nodes)
|
57
|
-
nodes
|
57
|
+
nodes.select { |node| node.text =~ ItemPattern }
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -95,12 +95,13 @@ class TaskList
|
|
95
95
|
item.source.sub(ItemPattern, render_item_checkbox(item)), 'utf-8'
|
96
96
|
end
|
97
97
|
|
98
|
-
# Public: Select all task
|
98
|
+
# Public: Select all task list items within `container`.
|
99
99
|
#
|
100
100
|
# Returns an Array of Nokogiri::XML::Element objects for ordered and
|
101
|
-
# unordered lists.
|
102
|
-
|
103
|
-
|
101
|
+
# unordered lists. The container can either be the entire document (as
|
102
|
+
# returned by `#doc`) or an Element object.
|
103
|
+
def list_items(container)
|
104
|
+
container.xpath(ListItemSelector, XPathSelectorFunction)
|
104
105
|
end
|
105
106
|
|
106
107
|
# Filters the source for task list items.
|
@@ -112,7 +113,9 @@ class TaskList
|
|
112
113
|
#
|
113
114
|
# Returns nothing.
|
114
115
|
def filter!
|
115
|
-
list_items.reverse.each do |li|
|
116
|
+
list_items(doc).reverse.each do |li|
|
117
|
+
next if list_items(li.parent).empty?
|
118
|
+
|
116
119
|
add_css_class(li.parent, 'task-list')
|
117
120
|
|
118
121
|
outer, inner =
|
data/lib/task_list/version.rb
CHANGED
@@ -13,6 +13,14 @@ class TaskList::FilterTest < Minitest::Test
|
|
13
13
|
@item_selector = "input.task-list-item-checkbox[type=checkbox]"
|
14
14
|
end
|
15
15
|
|
16
|
+
def test_has_no_effect_on_lists_with_no_tasks
|
17
|
+
text = <<-md
|
18
|
+
- plain
|
19
|
+
- bullets
|
20
|
+
md
|
21
|
+
assert_equal 0, filter(text)[:output].css('ul.task-list').size
|
22
|
+
end
|
23
|
+
|
16
24
|
def test_filters_items_in_a_list
|
17
25
|
text = <<-md
|
18
26
|
- [ ] incomplete
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deckar01-task_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jared Deckard
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-09-
|
12
|
+
date: 2016-09-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|