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 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