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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63a1703569a00e121051d24aa575d670c35a073d2ad3bb297ac21d9962df74c4
4
- data.tar.gz: bb4a5b8e4af7345fd785a99437894558fde1db23afec33483fba5cc80a48bf2d
3
+ metadata.gz: dda17ae00a59e8fa38d63bfa8614eee12ba2a0432ec2686bb3eb507f3b9227a2
4
+ data.tar.gz: 4c47e756f2e283d70ea801dd7b779324852a930a52c7e1f14608d590778fb94f
5
5
  SHA512:
6
- metadata.gz: 42983874e4878d69f6e6611a5498ca3fa8fe69432970430851375a42d7c8380c2a30c3dcdd7a72b867c570b35dcd9c7dcee47236608cff0869fa85ddc20e6fb2
7
- data.tar.gz: 4818f542b9c8ff57c1764ab33e54d938777d23c24b78713f45d19cb6b84c55d5705bbe0cdbf907475d81486e9ae917b296b554382ff35fef0dcc72b7aed24719
6
+ metadata.gz: 597b4298e1ac055236da0b1d3c028cf17bdc6cbe98a447ffebd725d36da7e2a745df2e6a54bd0d9e304349affb0970b007078f16b6aee6ebca7dafb312e971fd
7
+ data.tar.gz: ffc5e2354dd5f7afad3f3ad5993640fd50bad159a654ddd989cca73ff6d19b3f2ff372be23c56bf7b84ae0a10915da110e42b76ce423b32dca80e885764381b0
data/HISTORY.rdoc CHANGED
@@ -1,6 +1,16 @@
1
1
  = RELEASE HISTORY
2
2
 
3
- == Unreleased
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 = { "text" => "txt", "soap" => "xml", "xoxo" => "xml" }.freeze
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 = notes
28
- @format = format
29
- @title = title
30
- @dryrun = dryrun
27
+ @notes = notes
28
+ @format = format
29
+ @title = title
30
+ @dryrun = dryrun
31
31
  @template = template
32
- @output = output
32
+ @output = output
33
33
  end
34
34
 
35
35
  def render
36
36
  if notes.empty?
37
- $stderr << "No #{notes.labels.join(', ')} notes.\n"
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(', ')})\n"
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 = format.split("/").first
84
- ext = EXTENSIONS[fmt] || fmt
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
- fu.mkdir(dir) unless File.exist?(dir)
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 fu
109
- @fu ||=
110
- if dryrun? && debug?
111
- FileUtils::DryRun
112
- elsif dryrun?
113
- FileUtils::Noop
114
- elsif debug?
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 = if RUBY_VERSION >= "2.6"
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 = notes
34
- @file = file
35
- @label = label
36
- @line = line
37
- @text = text.rstrip
38
- @mark = 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
- { "label" => label, "text" => textline, "file" => file, "line" => line }
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
- { "label" => label, "text" => text, "file" => file, "line" => line, "code" => code }
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 = ["**/*.rb"].freeze
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(TODO FIXME OPTIMIZE THINK DEPRECATE).freeze
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, options = {})
48
- @files = [files].flatten
49
- @labels = [options[:labels] || DEFAULT_LABELS].flatten.compact
50
- @colon = options[:colon].nil? ? true : options[:colon]
51
- @marker = options[:marker]
52
- @url = options[:url]
53
- @context = options[:context] || 0
54
- @remark = {}
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
@@ -29,8 +29,8 @@ module DNote
29
29
  end
30
30
 
31
31
  # Iterate through notes.
32
- def each(&block)
33
- notes.each(&block)
32
+ def each(&)
33
+ notes.each(&)
34
34
  end
35
35
 
36
36
  # No notes?
@@ -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(TODO FIXME OPTIMIZE DEPRECATE).freeze
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 = "**/*.rb"
44
- @output = "log/dnote"
43
+ @files = "**/*.rb"
44
+ @output = "log/dnote"
45
45
  @formats = ["index"]
46
- @labels = nil
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 = files
82
+ s.paths = files
83
83
  s.exclude = exclude
84
- s.ignore = ignore
85
- s.labels = labels
86
- s.title = title
87
- s.output = output
88
- s.dryrun = application.options.dryrun # trial?
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}/", '')}" unless trial?
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".to_s
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 = DEFAULT_FORMAT
88
- @title = DEFAULT_TITLE
89
- @dryrun = false
90
- @marker = nil
91
- @url = nil
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 = File.join(DIR, "templates")
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DNote
4
- VERSION = "1.9.0"
4
+ VERSION = "1.11.0"
5
5
  end
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.9.0
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: 2021-09-17 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: aruba
14
+ name: rexml
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
17
  - - "~>"
19
18
  - !ruby/object:Gem::Version
20
- version: '2.0'
21
- type: :development
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: '2.0'
26
+ version: '3.3'
28
27
  - !ruby/object:Gem::Dependency
29
- name: cucumber
28
+ name: aruba
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - "~>"
33
32
  - !ruby/object:Gem::Version
34
- version: '7.0'
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: '7.0'
40
+ version: '2.0'
42
41
  - !ruby/object:Gem::Dependency
43
- name: pry
42
+ name: cucumber
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
45
  - - "~>"
47
46
  - !ruby/object:Gem::Version
48
- version: 0.14.0
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: 0.14.0
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.21.0
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.21.0
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.5.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.5.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.11.0
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.11.0
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: 2.4.0
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: 2.4.0
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.21.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.21.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
- post_install_message:
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: 2.5.0
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.2.22
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: []