deckar01-task_list 2.3.2 → 2.3.3

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
  SHA256:
3
- metadata.gz: 811229aaf38f084d46658e2f9a97322546f0888816f97d9c0fdf8644e53547f6
4
- data.tar.gz: 1f246072e4ba01c3e00b194df924d91052621487baf885f6b984c72464ddabae
3
+ metadata.gz: 25b1e9330f205a0fdcd27bffcd57709c3b13d45d6554075dc66472d71230421a
4
+ data.tar.gz: 575a135f17373ec21748d76cd96cd7143a2846aae8667b8fba7a0d2c10a4312f
5
5
  SHA512:
6
- metadata.gz: 002cd2dd383fe55de9694cd7160dc49af5fa8986a5745d1cc88f9a9507512a092e82af100d53505552ddc135fe399de120abc4ddf1b4876064482cdca9eae77f
7
- data.tar.gz: 10f495655ec32696adca0ba524c8790163c52ca27a5b57f11b277dcf6fbf5c14cfc3766db803cfe4691af9b49f072783448f7f8cbb3637a94d1612cc9a9abd74
6
+ metadata.gz: 6bef865f56600783b7c5da763891fec1fdd2de59152af2f698c481ff936859f60d7a5b5ce3756a90021d82dea1e50894f362701384606c8e4a9ef8ebbd62e739
7
+ data.tar.gz: 72cc545b970a28c4fe2b03b2fe271c9ad7304b5a3880305a8aed1f458e7cd67141c73e7f7d3829044bfd6d128cb61c9350b451ccc9af817dec7284e657bb98b1
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ tmp
19
19
  bower_components
20
20
  node_modules
21
21
  vendor/gems/
22
+ vendor/bundle/
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,22 @@
1
+ .test: &test
2
+ stage: test
3
+ before_script:
4
+ - ./script/bootstrap
5
+ script:
6
+ - ./script/cibuild
7
+
8
+ test 3.0:
9
+ image: "ruby:3.0"
10
+ <<: *test
11
+
12
+ test 3.1:
13
+ image: "ruby:3.1"
14
+ <<: *test
15
+
16
+ test 3.2:
17
+ image: "ruby:3.2"
18
+ <<: *test
19
+
20
+ test 3.3:
21
+ image: "ruby:3.3-rc"
22
+ <<: *test
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Task Lists
2
2
 
3
- [![Build Status](http://img.shields.io/travis/deckar01/task_list.svg)][travis]
4
-
5
- [travis]: https://travis-ci.org/deckar01/task_list
3
+ [![pipeline status](https://gitlab.com/deckar01/task_list/badges/master/pipeline.svg)](https://gitlab.com/deckar01/task_list/-/commits/master)
6
4
 
7
5
  This is a community fork of GitHub's archived [`task_list`][task_list] gem.
8
6
 
@@ -85,7 +83,7 @@ NOTE: Updates are not persisted to the server automatically. Persistence is the
85
83
 
86
84
  Read through the documented behaviors and samples [in the source][frontend_behaviors] for more detail, including documented events.
87
85
 
88
- [frontend_behaviors]: https://github.com/deckar01/task_list/blob/master/app/assets/javascripts/task_list.coffee
86
+ [frontend_behaviors]: https://gitlab.com/deckar01/task_list/blob/master/app/assets/javascripts/task_list.coffee
89
87
 
90
88
  ## Installation
91
89
 
data/bower.json CHANGED
@@ -2,10 +2,9 @@
2
2
  "name": "deckar01-task_list",
3
3
  "version": "2.0.1",
4
4
  "description": "Markdown TaskList components",
5
- "homepage": "https://github.com/deckar01/task_list",
5
+ "homepage": "https://gitlab.com/deckar01/task_list",
6
6
  "devDependencies": {
7
7
  "jquery": ">= 1.9.1 <3",
8
- "qunit": "^1.0.0",
9
8
  "rails-behaviors": "^0.8.4"
10
9
  },
11
10
  "main": [
data/build.mjs ADDED
@@ -0,0 +1,26 @@
1
+ import { build } from 'esbuild';
2
+ import coffeeScriptPlugin from 'esbuild-coffeescript';
3
+ import { umdWrapper } from 'esbuild-plugin-umd-wrapper';
4
+
5
+ await build({
6
+ entryPoints: ['app/assets/javascripts/task_list.coffee'],
7
+ bundle: true,
8
+ minify: true,
9
+ format: 'umd',
10
+ outfile: 'dist/task_list.js',
11
+ plugins: [
12
+ coffeeScriptPlugin(),
13
+ umdWrapper({libraryName: 'TaskList'}),
14
+ ],
15
+ logLevel: 'info',
16
+ });
17
+
18
+ await build({
19
+ entryPoints: ['test/unit/*.coffee'],
20
+ bundle: true,
21
+ outdir: 'bin/test/unit/',
22
+ plugins: [
23
+ coffeeScriptPlugin(),
24
+ ],
25
+ logLevel: 'info',
26
+ });
@@ -54,13 +54,18 @@ class TaskList
54
54
 
55
55
  class XPathSelectorFunction
56
56
  def self.task_list_item(nodes)
57
- nodes.select { |node| node.text =~ ItemPattern }
57
+ nodes.select { |li| Filter::item_container(li).inner_html =~ ItemPattern }
58
58
  end
59
59
  end
60
60
 
61
61
  # Selects first P tag of an LI, if present
62
62
  ItemParaSelector = "./p[1]".freeze
63
63
 
64
+ # The the node directly containing the checkbox text
65
+ def self.item_container(li)
66
+ li.xpath(ItemParaSelector)[0] || li
67
+ end
68
+
64
69
  # List of `TaskList::Item` objects that were recognized in the document.
65
70
  # This is available in the result hash as `:task_list_items`.
66
71
  #
@@ -80,6 +85,7 @@ class TaskList
80
85
  />)
81
86
  end
82
87
 
88
+ # Deprecated: Removed in v3
83
89
  # Public: Marks up the task list item checkbox with metadata and behavior.
84
90
  #
85
91
  # NOTE: produces a string that, when assigned to a Node's `inner_html`,
@@ -95,6 +101,7 @@ class TaskList
95
101
  item.source.sub(ItemPattern, render_item_checkbox(item)), 'utf-8'
96
102
  end
97
103
 
104
+ # Deprecated: Removed in v3
98
105
  # Public: Select all task list items within `container`.
99
106
  #
100
107
  # Returns an Array of Nokogiri::XML::Element objects for ordered and
@@ -114,24 +121,15 @@ class TaskList
114
121
  # Returns nothing.
115
122
  def filter!
116
123
  list_items(doc).reverse.each do |li|
117
- next if list_items(li.parent).empty?
118
-
119
- add_css_class(li.parent, 'task-list')
120
-
121
- outer, inner =
122
- if p = li.xpath(ItemParaSelector)[0]
123
- [p, p.inner_html]
124
- else
125
- [li, li.inner_html]
126
- end
127
- if match = (inner.chomp =~ ItemPattern && $1)
128
- item = TaskList::Item.new(match, inner)
129
- # prepend because we're iterating in reverse
130
- task_list_items.unshift item
131
-
132
- add_css_class(li, 'task-list-item')
133
- outer.inner_html = render_task_list_item(item)
134
- end
124
+ outer = self.class.item_container(li)
125
+ inner = outer.inner_html
126
+ checkbox = inner.match(ItemPattern).captures[0]
127
+ item = TaskList::Item.new(checkbox, inner)
128
+ # prepend because we're iterating in reverse
129
+ task_list_items.unshift item
130
+ li.parent.add_class('task-list')
131
+ li.add_class('task-list-item')
132
+ outer.inner_html = render_task_list_item(item)
135
133
  end
136
134
  end
137
135
 
@@ -140,6 +138,7 @@ class TaskList
140
138
  doc
141
139
  end
142
140
 
141
+ # Deprecated: Removed in v3
143
142
  # Private: adds a CSS class name to a node, respecting existing class
144
143
  # names.
145
144
  def add_css_class(node, *new_class_names)
@@ -1,3 +1,3 @@
1
1
  class TaskList
2
- VERSION = [2, 3, 2].join('.')
2
+ VERSION = [2, 3, 3].join('.')
3
3
  end