deckar01-task_list 1.0.3 → 1.0.4

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
  SHA1:
3
- metadata.gz: 0ede80f64a73125eacfa02592290df623f5fba44
4
- data.tar.gz: a68b79a9b6aa1f8a616ea4a56b68751f404d4dc0
3
+ metadata.gz: 98c115a88c39b3864da7fbfa85b51ad7e087fa20
4
+ data.tar.gz: c3046d2ebb7b25f698aa236f04a5ae390c5d7cc5
5
5
  SHA512:
6
- metadata.gz: 5605f90ee454095d54491ca31cd53da4e03910400615474760e7c87acb590a9437a89d8ca6d4e4376a94b506bf30476856962625240ee260abee2d4e36e1ab8e
7
- data.tar.gz: aa65c07c23206eb84d93b0286eeaf573e7ff6c2d75acd7f5a5735e6c93d3efd7b6c8389dd22a41f3a2be23e5b2a5d6c9bf00b07a19e65c385defde7c1daf3762
6
+ metadata.gz: d7e395593cb4e2dd7e3adfed007bb362989d8c3aedf21783200bfb65bb6bc38813a1920cc499524a219621f97222d53e21f8fbea3532c2df2d2c4b469eb802d8
7
+ data.tar.gz: 40e6d857004eeddcf1c58c7794d4486bb2675f599c383b418d8a5faa684699e7f80f969643fadb33a991264e0d8f9d06c997c2af56185a5d2f408617a78bd150
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deckar01-task_list",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Markdown TaskList components",
5
5
  "homepage": "https://github.com/deckar01/task_list",
6
6
  "dependencies": {
@@ -54,7 +54,7 @@ class TaskList
54
54
 
55
55
  class XPathSelectorFunction
56
56
  def self.task_list_item(nodes)
57
- nodes if nodes.text =~ ItemPattern
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 lists from the `doc`.
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
- def list_items
103
- doc.xpath(ListItemSelector, XPathSelectorFunction)
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 =
@@ -1,3 +1,3 @@
1
1
  class TaskList
2
- VERSION = [1, 0, 3].join('.')
2
+ VERSION = [1, 0, 4].join('.')
3
3
  end
@@ -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.3
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-27 00:00:00.000000000 Z
12
+ date: 2016-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack