mvz-dnote 1.9.0 → 1.11.0
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 +4 -4
- data/HISTORY.rdoc +11 -1
- data/lib/dnote/format.rb +19 -26
- data/lib/dnote/note.rb +8 -8
- data/lib/dnote/notes.rb +11 -10
- data/lib/dnote/notes_collection.rb +2 -2
- data/lib/dnote/rake/dnotetask.rb +12 -12
- data/lib/dnote/session.rb +12 -12
- data/lib/dnote/version.rb +1 -1
- metadata +32 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dda17ae00a59e8fa38d63bfa8614eee12ba2a0432ec2686bb3eb507f3b9227a2
|
4
|
+
data.tar.gz: 4c47e756f2e283d70ea801dd7b779324852a930a52c7e1f14608d590778fb94f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 597b4298e1ac055236da0b1d3c028cf17bdc6cbe98a447ffebd725d36da7e2a745df2e6a54bd0d9e304349affb0970b007078f16b6aee6ebca7dafb312e971fd
|
7
|
+
data.tar.gz: ffc5e2354dd5f7afad3f3ad5993640fd50bad159a654ddd989cca73ff6d19b3f2ff372be23c56bf7b84ae0a10915da110e42b76ce423b32dca80e885764381b0
|
data/HISTORY.rdoc
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
= RELEASE HISTORY
|
2
2
|
|
3
|
-
==
|
3
|
+
== 1.11.0 / 2025-05-24
|
4
|
+
|
5
|
+
* Support Ruby 3.1 through 3.4, dropping support for older Rubies
|
6
|
+
* Add rexml dependency
|
7
|
+
* Update development dependencies
|
8
|
+
|
9
|
+
== 1.10.0 / 2022-04-10
|
10
|
+
|
11
|
+
* Add support for Ruby 3.1
|
12
|
+
* Drop support for Ruby 2.5
|
13
|
+
* Loosen development dependencies
|
4
14
|
|
5
15
|
== 1.9.0 / 2021-09-17
|
6
16
|
|
data/lib/dnote/format.rb
CHANGED
@@ -14,7 +14,7 @@ module DNote
|
|
14
14
|
require "rexml/text"
|
15
15
|
require "dnote/core_ext"
|
16
16
|
|
17
|
-
EXTENSIONS = {
|
17
|
+
EXTENSIONS = {"text" => "txt", "soap" => "xml", "xoxo" => "xml"}.freeze
|
18
18
|
|
19
19
|
attr_reader :notes, :format, :output, :template, :title, :dryrun
|
20
20
|
|
@@ -24,17 +24,17 @@ module DNote
|
|
24
24
|
template: nil,
|
25
25
|
output: nil,
|
26
26
|
dryrun: false)
|
27
|
-
@notes
|
28
|
-
@format
|
29
|
-
@title
|
30
|
-
@dryrun
|
27
|
+
@notes = notes
|
28
|
+
@format = format
|
29
|
+
@title = title
|
30
|
+
@dryrun = dryrun
|
31
31
|
@template = template
|
32
|
-
@output
|
32
|
+
@output = output
|
33
33
|
end
|
34
34
|
|
35
35
|
def render
|
36
36
|
if notes.empty?
|
37
|
-
$stderr << "No #{notes.labels.join(
|
37
|
+
$stderr << "No #{notes.labels.join(", ")} notes.\n"
|
38
38
|
else
|
39
39
|
case format
|
40
40
|
when "custom"
|
@@ -75,13 +75,13 @@ module DNote
|
|
75
75
|
else
|
76
76
|
puts(result)
|
77
77
|
end
|
78
|
-
$stderr << "(#{notes.counts.map { |l, n| "#{n} #{l}s" }.join(
|
78
|
+
$stderr << "(#{notes.counts.map { |l, n| "#{n} #{l}s" }.join(", ")})\n"
|
79
79
|
end
|
80
80
|
|
81
81
|
def write(result, fname = nil)
|
82
82
|
if output.to_s[-1, 1] == "/" || File.directory?(output)
|
83
|
-
fmt
|
84
|
-
ext
|
83
|
+
fmt = format.split("/").first
|
84
|
+
ext = EXTENSIONS[fmt] || fmt
|
85
85
|
file = File.join(output, fname || "notes.#{ext}")
|
86
86
|
else
|
87
87
|
file = output
|
@@ -91,7 +91,7 @@ module DNote
|
|
91
91
|
puts "write: #{file}"
|
92
92
|
else
|
93
93
|
dir = File.dirname(file)
|
94
|
-
|
94
|
+
FileUtils.mkdir_p(dir, **fu_opts)
|
95
95
|
File.open(file, "w") { |f| f << result }
|
96
96
|
end
|
97
97
|
file
|
@@ -105,16 +105,13 @@ module DNote
|
|
105
105
|
$DEBUG
|
106
106
|
end
|
107
107
|
|
108
|
-
def
|
109
|
-
@
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
FileUtils::Verbose
|
116
|
-
else
|
117
|
-
FileUtils
|
108
|
+
def fu_opts
|
109
|
+
@fu_opts ||=
|
110
|
+
begin
|
111
|
+
opts = {}
|
112
|
+
opts[:noop] = true if dryrun?
|
113
|
+
opts[:verbose] = true if debug?
|
114
|
+
opts
|
118
115
|
end
|
119
116
|
end
|
120
117
|
|
@@ -126,11 +123,7 @@ module DNote
|
|
126
123
|
|
127
124
|
def render(file)
|
128
125
|
contents = File.read(file)
|
129
|
-
erb =
|
130
|
-
ERB.new(contents, trim_mode: "<>")
|
131
|
-
else
|
132
|
-
ERB.new(contents, nil, "<>")
|
133
|
-
end
|
126
|
+
erb = ERB.new(contents, trim_mode: "<>")
|
134
127
|
erb.result(binding)
|
135
128
|
end
|
136
129
|
|
data/lib/dnote/note.rb
CHANGED
@@ -30,12 +30,12 @@ module DNote
|
|
30
30
|
|
31
31
|
# Initialize new Note instance.
|
32
32
|
def initialize(notes, file, label, line, text, mark)
|
33
|
-
@notes
|
34
|
-
@file
|
35
|
-
@label
|
36
|
-
@line
|
37
|
-
@text
|
38
|
-
@mark
|
33
|
+
@notes = notes
|
34
|
+
@file = file
|
35
|
+
@label = label
|
36
|
+
@line = line
|
37
|
+
@text = text.rstrip
|
38
|
+
@mark = mark
|
39
39
|
@capture = []
|
40
40
|
end
|
41
41
|
|
@@ -68,12 +68,12 @@ module DNote
|
|
68
68
|
# TODO: Add +code+? Problem is that xml needs code in CDATA.
|
69
69
|
#++
|
70
70
|
def to_h
|
71
|
-
{
|
71
|
+
{"label" => label, "text" => textline, "file" => file, "line" => line}
|
72
72
|
end
|
73
73
|
|
74
74
|
# Convert to Hash, leaving the note text verbatim.
|
75
75
|
def to_h_raw
|
76
|
-
{
|
76
|
+
{"label" => label, "text" => text, "file" => file, "line" => line, "code" => code}
|
77
77
|
end
|
78
78
|
|
79
79
|
# Convert to JSON.
|
data/lib/dnote/notes.rb
CHANGED
@@ -20,10 +20,10 @@ module DNote
|
|
20
20
|
#++
|
21
21
|
class Notes
|
22
22
|
# Default paths (all ruby scripts).
|
23
|
-
DEFAULT_PATHS
|
23
|
+
DEFAULT_PATHS = ["**/*.rb"].freeze
|
24
24
|
|
25
25
|
# Default note labels to look for in source code. (NOT CURRENTLY USED!)
|
26
|
-
DEFAULT_LABELS = %w
|
26
|
+
DEFAULT_LABELS = %w[TODO FIXME OPTIMIZE THINK DEPRECATE].freeze
|
27
27
|
|
28
28
|
# Files to search for notes.
|
29
29
|
attr_reader :files
|
@@ -44,14 +44,15 @@ module DNote
|
|
44
44
|
attr_reader :context
|
45
45
|
|
46
46
|
# New set of notes for give +files+ and optional special labels.
|
47
|
-
def initialize(files,
|
48
|
-
|
49
|
-
@
|
50
|
-
@
|
51
|
-
@
|
52
|
-
@
|
53
|
-
@
|
54
|
-
@
|
47
|
+
def initialize(files, marker: nil, url: nil, labels: DEFAULT_LABELS,
|
48
|
+
colon: true, context: 0)
|
49
|
+
@files = files
|
50
|
+
@labels = labels
|
51
|
+
@colon = colon
|
52
|
+
@marker = marker
|
53
|
+
@url = url
|
54
|
+
@context = context
|
55
|
+
@remark = {}
|
55
56
|
|
56
57
|
parse
|
57
58
|
end
|
data/lib/dnote/rake/dnotetask.rb
CHANGED
@@ -9,7 +9,7 @@ module DNote
|
|
9
9
|
require "rake/clean"
|
10
10
|
|
11
11
|
# Default note labels to looked for in source code.
|
12
|
-
DEFAULT_LABELS = %w
|
12
|
+
DEFAULT_LABELS = %w[TODO FIXME OPTIMIZE DEPRECATE].freeze
|
13
13
|
|
14
14
|
# File paths to search.
|
15
15
|
attr_accessor :files
|
@@ -40,10 +40,10 @@ module DNote
|
|
40
40
|
def init
|
41
41
|
require "dnote"
|
42
42
|
require "dnote/format"
|
43
|
-
@files
|
44
|
-
@output
|
43
|
+
@files = "**/*.rb"
|
44
|
+
@output = "log/dnote"
|
45
45
|
@formats = ["index"]
|
46
|
-
@labels
|
46
|
+
@labels = nil
|
47
47
|
end
|
48
48
|
|
49
49
|
def define
|
@@ -79,13 +79,13 @@ module DNote
|
|
79
79
|
|
80
80
|
def new_session
|
81
81
|
::DNote::Session.new do |s|
|
82
|
-
s.paths
|
82
|
+
s.paths = files
|
83
83
|
s.exclude = exclude
|
84
|
-
s.ignore
|
85
|
-
s.labels
|
86
|
-
s.title
|
87
|
-
s.output
|
88
|
-
s.dryrun
|
84
|
+
s.ignore = ignore
|
85
|
+
s.labels = labels
|
86
|
+
s.title = title
|
87
|
+
s.output = output
|
88
|
+
s.dryrun = application.options.dryrun # trial?
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -97,12 +97,12 @@ module DNote
|
|
97
97
|
session.format = format
|
98
98
|
end
|
99
99
|
session.run
|
100
|
-
report "Updated #{output.to_s.sub("#{Dir.pwd}/",
|
100
|
+
report "Updated #{output.to_s.sub("#{Dir.pwd}/", "")}" unless trial?
|
101
101
|
end
|
102
102
|
|
103
103
|
def clean_format(format)
|
104
104
|
if format == "index"
|
105
|
-
file = "#{output}index.html"
|
105
|
+
file = "#{output}index.html"
|
106
106
|
else
|
107
107
|
ext = ::DNote::Format::EXTENSIONS[format] || format
|
108
108
|
file = (output + "notes.#{ext}").to_s
|
data/lib/dnote/session.rb
CHANGED
@@ -71,24 +71,24 @@ module DNote
|
|
71
71
|
private
|
72
72
|
|
73
73
|
# New Session.
|
74
|
-
def initialize(options
|
75
|
-
options ||= {}
|
74
|
+
def initialize(**options)
|
76
75
|
initialize_defaults
|
77
|
-
options.each { |k, v| __send__("#{k}=", v) }
|
76
|
+
options.each { |k, v| __send__(:"#{k}=", v) }
|
78
77
|
yield(self) if block_given?
|
79
78
|
end
|
80
79
|
|
81
80
|
# Set default values for attributes.
|
82
81
|
def initialize_defaults
|
83
|
-
@paths
|
84
|
-
@labels
|
82
|
+
@paths = []
|
83
|
+
@labels = []
|
85
84
|
@exclude = []
|
86
|
-
@ignore
|
87
|
-
@format
|
88
|
-
@title
|
89
|
-
@dryrun
|
90
|
-
@
|
91
|
-
@
|
85
|
+
@ignore = []
|
86
|
+
@format = DEFAULT_FORMAT
|
87
|
+
@title = DEFAULT_TITLE
|
88
|
+
@dryrun = false
|
89
|
+
@colon = true
|
90
|
+
@marker = nil
|
91
|
+
@url = nil
|
92
92
|
@context = 0
|
93
93
|
end
|
94
94
|
|
@@ -148,7 +148,7 @@ module DNote
|
|
148
148
|
|
149
149
|
# List availble format templates
|
150
150
|
def list_templates
|
151
|
-
tdir
|
151
|
+
tdir = File.join(DIR, "templates")
|
152
152
|
tfiles = Dir[File.join(tdir, "**/*.erb")]
|
153
153
|
tnames = tfiles.map { |tname| tname.sub("#{tdir}/", "").chomp(".erb") }
|
154
154
|
groups = tnames.group_by { |tname| tname.split("/").first }
|
data/lib/dnote/version.rb
CHANGED
metadata
CHANGED
@@ -1,58 +1,63 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mvz-dnote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Sawyer
|
8
8
|
- Matijs van Zuijlen
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: rexml
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
17
|
- - "~>"
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
21
|
-
type: :
|
19
|
+
version: '3.3'
|
20
|
+
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - "~>"
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
26
|
+
version: '3.3'
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
28
|
+
name: aruba
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
31
|
- - "~>"
|
33
32
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
33
|
+
version: '2.0'
|
35
34
|
type: :development
|
36
35
|
prerelease: false
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
38
|
- - "~>"
|
40
39
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
40
|
+
version: '2.0'
|
42
41
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
42
|
+
name: cucumber
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
45
44
|
requirements:
|
46
45
|
- - "~>"
|
47
46
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
47
|
+
version: '9.2'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 9.2.1
|
49
51
|
type: :development
|
50
52
|
prerelease: false
|
51
53
|
version_requirements: !ruby/object:Gem::Requirement
|
52
54
|
requirements:
|
53
55
|
- - "~>"
|
54
56
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
57
|
+
version: '9.2'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 9.2.1
|
56
61
|
- !ruby/object:Gem::Dependency
|
57
62
|
name: rake
|
58
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,70 +106,70 @@ dependencies:
|
|
101
106
|
requirements:
|
102
107
|
- - "~>"
|
103
108
|
- !ruby/object:Gem::Version
|
104
|
-
version: 1.
|
109
|
+
version: '1.74'
|
105
110
|
type: :development
|
106
111
|
prerelease: false
|
107
112
|
version_requirements: !ruby/object:Gem::Requirement
|
108
113
|
requirements:
|
109
114
|
- - "~>"
|
110
115
|
- !ruby/object:Gem::Version
|
111
|
-
version: 1.
|
116
|
+
version: '1.74'
|
112
117
|
- !ruby/object:Gem::Dependency
|
113
118
|
name: rubocop-packaging
|
114
119
|
requirement: !ruby/object:Gem::Requirement
|
115
120
|
requirements:
|
116
121
|
- - "~>"
|
117
122
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.
|
123
|
+
version: 0.6.0
|
119
124
|
type: :development
|
120
125
|
prerelease: false
|
121
126
|
version_requirements: !ruby/object:Gem::Requirement
|
122
127
|
requirements:
|
123
128
|
- - "~>"
|
124
129
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
130
|
+
version: 0.6.0
|
126
131
|
- !ruby/object:Gem::Dependency
|
127
132
|
name: rubocop-performance
|
128
133
|
requirement: !ruby/object:Gem::Requirement
|
129
134
|
requirements:
|
130
135
|
- - "~>"
|
131
136
|
- !ruby/object:Gem::Version
|
132
|
-
version: 1.
|
137
|
+
version: '1.24'
|
133
138
|
type: :development
|
134
139
|
prerelease: false
|
135
140
|
version_requirements: !ruby/object:Gem::Requirement
|
136
141
|
requirements:
|
137
142
|
- - "~>"
|
138
143
|
- !ruby/object:Gem::Version
|
139
|
-
version: 1.
|
144
|
+
version: '1.24'
|
140
145
|
- !ruby/object:Gem::Dependency
|
141
146
|
name: rubocop-rspec
|
142
147
|
requirement: !ruby/object:Gem::Requirement
|
143
148
|
requirements:
|
144
149
|
- - "~>"
|
145
150
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
151
|
+
version: '3.5'
|
147
152
|
type: :development
|
148
153
|
prerelease: false
|
149
154
|
version_requirements: !ruby/object:Gem::Requirement
|
150
155
|
requirements:
|
151
156
|
- - "~>"
|
152
157
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
158
|
+
version: '3.5'
|
154
159
|
- !ruby/object:Gem::Dependency
|
155
160
|
name: simplecov
|
156
161
|
requirement: !ruby/object:Gem::Requirement
|
157
162
|
requirements:
|
158
163
|
- - "~>"
|
159
164
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.
|
165
|
+
version: 0.22.0
|
161
166
|
type: :development
|
162
167
|
prerelease: false
|
163
168
|
version_requirements: !ruby/object:Gem::Requirement
|
164
169
|
requirements:
|
165
170
|
- - "~>"
|
166
171
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.
|
172
|
+
version: 0.22.0
|
168
173
|
description: |
|
169
174
|
DNote makes it easy to extract developer's notes from source code,
|
170
175
|
and supports almost any language.
|
@@ -174,9 +179,9 @@ executables:
|
|
174
179
|
- dnote
|
175
180
|
extensions: []
|
176
181
|
extra_rdoc_files:
|
182
|
+
- COPYING.rdoc
|
177
183
|
- HISTORY.rdoc
|
178
184
|
- README.md
|
179
|
-
- COPYING.rdoc
|
180
185
|
files:
|
181
186
|
- COPYING.rdoc
|
182
187
|
- HISTORY.rdoc
|
@@ -235,7 +240,7 @@ metadata:
|
|
235
240
|
homepage_uri: https://github.com/mvz/dnote
|
236
241
|
source_code_uri: https://github.com/mvz/dnote
|
237
242
|
changelog_uri: https://github.com/mvz/dnote/blob/master/HISTORY.rdoc
|
238
|
-
|
243
|
+
rubygems_mfa_required: 'true'
|
239
244
|
rdoc_options:
|
240
245
|
- "--main"
|
241
246
|
- README.md
|
@@ -245,15 +250,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
245
250
|
requirements:
|
246
251
|
- - ">="
|
247
252
|
- !ruby/object:Gem::Version
|
248
|
-
version:
|
253
|
+
version: 3.1.0
|
249
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
250
255
|
requirements:
|
251
256
|
- - ">="
|
252
257
|
- !ruby/object:Gem::Version
|
253
258
|
version: '0'
|
254
259
|
requirements: []
|
255
|
-
rubygems_version: 3.
|
256
|
-
signing_key:
|
260
|
+
rubygems_version: 3.6.7
|
257
261
|
specification_version: 4
|
258
262
|
summary: Extract developer's notes from source code.
|
259
263
|
test_files: []
|