jtag 0.1.22 → 0.1.25

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: 3518e605a4ae81f16e38f572d99835dbfdd7b592607a9972d3c1964668e6b5d5
4
- data.tar.gz: fa982a6286ded48b0063c2291aeb80135f0f4e76c9056c393b4379d60f87e5d1
3
+ metadata.gz: d12022a720e811093534ee136708507580b0ac4457e9b8f4a15574c93a8885a1
4
+ data.tar.gz: 0c9ac5e09cba24a9f4d0328a41cb4c82d52fcf759dedab963eaf7fdfc82b558e
5
5
  SHA512:
6
- metadata.gz: 036b07fb509fc8ebb3f73542b62f428205b52dccc14ee7d962503602d8f32b56acb4d09340eee1801e7a80f27c5b36bbab51c5438f78d328d8d82e58ce0ed90f
7
- data.tar.gz: 772381ea377967c35ee48b11c3d73272d74da50c61f5c75b7a1f43571cf025c65d8f0f076307d6bcf5ffdee6f1192e209a7674bf16e4d1178e3d05e5da00486a
6
+ metadata.gz: 34aa8fc078a66ea62a371cb92f55e96211235a461d0da2130c2e0c3cf7b8e82a74519378f9bd4999388012d6192dd6705d9edafef3b0e5598b70aa2cbc23c252
7
+ data.tar.gz: a8d8eb9a5e60aaf84b0fba8d88295c9374bf1897ade5d6fa6f944932206ddfa4ec73eff446a8a8746f5065c5350de634e985b1a623288a1e93837064eded1743
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### 0.1.25
2
+
3
+ 2026-11-04 10:03
4
+
5
+ #### FIXED
6
+
7
+ - Errors updating deprecated config location
8
+
1
9
  ### 0.1.19
2
10
 
3
11
  2024-09-16 13:15
data/Rakefile CHANGED
@@ -16,19 +16,15 @@ Gem::PackageTask.new(spec) do |pkg|
16
16
  end
17
17
  CUKE_RESULTS = 'results.html'
18
18
  CLEAN << CUKE_RESULTS
19
- desc 'Run features'
20
- Cucumber::Rake::Task.new(:features) do |t|
21
- opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
- opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
- t.cucumber_opts = opts
19
+ Cucumber::Rake::Task.new(:features, 'Run features') do |t|
20
+ opts = ['features', '--format', 'html', '-o', CUKE_RESULTS, '--format', 'progress', '-x']
21
+ opts += ['--tags', ENV['TAGS']] if ENV['TAGS']
22
+ t.cucumber_opts = opts
24
23
  t.fork = false
25
24
  end
26
25
 
27
- desc 'Run features tagged as work-in-progress (@wip)'
28
- Cucumber::Rake::Task.new('features:wip') do |t|
29
- tag_opts = ' --tags ~@pending'
30
- tag_opts = ' --tags @wip'
31
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
26
+ Cucumber::Rake::Task.new('features:wip', 'Run features tagged as work-in-progress (@wip)') do |t|
27
+ t.cucumber_opts = ['features', '--format', 'html', '-o', CUKE_RESULTS, '--format', 'pretty', '-x', '-s', '--tags', '@wip']
32
28
  t.fork = false
33
29
  end
34
30
 
@@ -67,11 +63,12 @@ task :bump, :type do |t, args|
67
63
  version_file = "lib/#{spec.name}/version.rb"
68
64
  raise "File not found" unless File.exist? version_file
69
65
  content = IO.read(version_file)
70
- content.sub!(/VERSION = '(\d+)\.(\d+)\.(\d+)(\.\S+)?'/) {|m|
71
- major = $1.to_i
72
- minor = $2.to_i
73
- inc = $3.to_i
74
- pre = $4
66
+ content.sub!(/VERSION = (['"])(\d+)\.(\d+)\.(\d+)(\.\S+)?\1/) {
67
+ quote = $1
68
+ major = $2.to_i
69
+ minor = $3.to_i
70
+ inc = $4.to_i
71
+ pre = $5
75
72
 
76
73
  case args[:type]
77
74
  when /^maj/
@@ -86,7 +83,7 @@ task :bump, :type do |t, args|
86
83
  end
87
84
 
88
85
  $stdout.puts "At version #{major}.#{minor}.#{inc}#{pre}"
89
- "VERSION = '#{major}.#{minor}.#{inc}#{pre}'"
86
+ "VERSION = #{quote}#{major}.#{minor}.#{inc}#{pre}#{quote}"
90
87
  }
91
88
  File.open(version_file, 'w+') {|f|
92
89
  f.puts content
data/bin/jtag CHANGED
@@ -865,9 +865,10 @@ post do |global, command, options, args|
865
865
  end
866
866
 
867
867
  on_error do |exception|
868
- @util = JekyllTag::Util.new
868
+ @util ||= JekyllTag::Util.new
869
869
  if exception.is_a?(NoValidFile) || exception.is_a?(FileNotFound) || exception.is_a?(NoTagsFound)
870
- @util.console_log "#{@jt.color(:red)}#{exception.message}", err: true, level: :error
870
+ prefix = @jt ? @jt.color(:red) : ""
871
+ @util.console_log "#{prefix}#{exception.message}", err: true, level: :error
871
872
  return false
872
873
  end
873
874
 
data/jtag.gemspec CHANGED
@@ -6,6 +6,8 @@ spec = Gem::Specification.new do |s|
6
6
  s.author = "Brett Terpstra"
7
7
  s.email = "me@brettterpstra.com"
8
8
  s.homepage = "http://brettterpstra.com"
9
+ s.license = nil
10
+ s.required_ruby_version = ">= 3.3"
9
11
  s.platform = Gem::Platform::RUBY
10
12
  s.summary = "Auto-tagging and tagging tools for Jekyll"
11
13
  # Add your other files here if you make them
@@ -16,10 +18,10 @@ spec = Gem::Specification.new do |s|
16
18
  s.rdoc_options << "--title" << "jtag" << "--main" << "README.rdoc"
17
19
  s.bindir = "bin"
18
20
  s.executables << "jtag"
19
- s.add_development_dependency("rake")
20
- s.add_development_dependency("rdoc")
21
- s.add_development_dependency("aruba")
21
+ s.add_development_dependency("rake", "~> 13.0")
22
+ s.add_development_dependency("rdoc", "~> 6.6")
23
+ s.add_development_dependency("aruba", "~> 2.0")
22
24
  s.add_runtime_dependency("gli", "= 2.20.0")
23
- s.add_runtime_dependency("plist")
24
- s.add_runtime_dependency("csv")
25
+ s.add_runtime_dependency("plist", "~> 3.7")
26
+ s.add_runtime_dependency("csv", "~> 3.2")
25
27
  end
@@ -11,13 +11,17 @@ module JekyllTag
11
11
  config = config.symbolize_keys
12
12
  @support = support_dir
13
13
  @util = JekyllTag::Util.new
14
+ @min_matches = config[:min_matches] || 2
15
+ @post_extension = (config[:post_extension] || "md").to_s.sub(/^\./, "")
16
+ @tags_key = config[:tags_key] || "tags"
17
+ @default_post_location = normalize_post_location(config[:default_post_location], config[:post_extension])
14
18
  begin
15
19
  if options[:files]
16
20
  @tags_loc = :auto
17
21
  files = options[:files].map(&:File.expand_path)
18
22
  elsif config[:tags_location].to_s =~ /^(auto|posts?)$/
19
23
  @tags_loc = :auto
20
- files = Dir.glob(File.expand_path(File.join(config[:default_post_location], "**", "*.#{config[:post_extension]}")))
24
+ files = Dir.glob(File.join(@default_post_location.to_s, "**", "*.#{@post_extension}"))
21
25
  else
22
26
  @tags_loc = config[:tags_location]
23
27
  if File.exist?(File.expand_path(@tags_loc))
@@ -31,14 +35,7 @@ module JekyllTag
31
35
  raise InvalidTagsFile, "Error reading configured tags locatio (#{e})"
32
36
  end
33
37
 
34
- @min_matches = config[:min_matches] || 2
35
- @post_extension = config[:post_extension] || "md"
36
- @post_extension.sub!(/^\./, "")
37
- @tags_key = config[:tags_key] || "tags"
38
-
39
- if config.has_key? :default_post_location
40
- @default_post_location = File.expand_path(config[:default_post_location]) || false
41
- else
38
+ unless config.has_key?(:default_post_location)
42
39
  str = ["#{color("yellow")}No #{color("boldyellow")}default_post_location#{color("yellow")} set.",
43
40
  "If you commonly work on the same posts you can add the path and extension",
44
41
  "to these key in ~/.jtag/config.yml. Then, if you don't specify files",
@@ -59,6 +56,24 @@ module JekyllTag
59
56
  }
60
57
  end
61
58
 
59
+ # Older configs stored a glob (…/_posts/*.md). Commands expect a directory
60
+ # plus post_extension, so peel the glob off and keep the extension.
61
+ def normalize_post_location(location, explicit_extension)
62
+ return false if location.nil? || location.to_s.strip.empty?
63
+
64
+ raw = location.to_s.strip
65
+ if raw.match?(/[*?\[{]/)
66
+ unless explicit_extension
67
+ ext = raw[/\*\.([A-Za-z0-9]+)\z/, 1]
68
+ @post_extension = ext if ext
69
+ end
70
+ dir = File.expand_path(File.dirname(raw))
71
+ return File.directory?(dir) ? dir : false
72
+ end
73
+
74
+ File.expand_path(raw)
75
+ end
76
+
62
77
  def tags(options = {})
63
78
  blacklisted = options[:blacklisted] || false
64
79
  counts = options[:counts] || false
@@ -145,7 +160,15 @@ module JekyllTag
145
160
  begin
146
161
  input = piped ? file.strip : IO.read(File.expand_path(file))
147
162
  yaml = YAML::load(input)
148
- return yaml[@tags_key] || []
163
+ tags = yaml.is_a?(Hash) ? yaml[@tags_key] : nil
164
+ case tags
165
+ when Array
166
+ tags.compact.map(&:to_s)
167
+ when String
168
+ [tags]
169
+ else
170
+ []
171
+ end
149
172
  rescue
150
173
  return []
151
174
  end
data/lib/jtag/string.rb CHANGED
@@ -22,7 +22,7 @@ module JekyllTag
22
22
  end
23
23
 
24
24
  ##
25
- ## Convert a string to a format symbol (:csv, :complete, :json, :plist, :yaml)
25
+ ## Convert a string to a format symbol (:list, :csv, :complete, :json, :plist, :yaml)
26
26
  ##
27
27
  ## @return [Symbol] format symbol
28
28
  ##
@@ -38,6 +38,8 @@ module JekyllTag
38
38
  :csv
39
39
  when /^c/i
40
40
  :complete
41
+ when /^l/i
42
+ :list
41
43
  else
42
44
  raise ArgumentError, "Invalid format string: #{self}"
43
45
  end
data/lib/jtag/util.rb CHANGED
@@ -17,6 +17,11 @@ module JekyllTag
17
17
 
18
18
  CONFIG_FILES = %w{blacklist.txt config.yml stopwords.txt synonyms.yml}
19
19
 
20
+ def initialize
21
+ @debug_level = 3
22
+ @silent = false
23
+ end
24
+
20
25
  ##
21
26
  ## Output tags in the specified format
22
27
  ##
@@ -33,7 +38,8 @@ module JekyllTag
33
38
  ##
34
39
  def output_tags(tags, options)
35
40
  # Determine the format for output, defaulting to "yaml" if not specified
36
- format = options[:format]&.to_format || :yaml
41
+ format = options[:format].respond_to?(:to_format) ? options[:format].to_format : (options[:format] || :yaml)
42
+ format = format.to_sym
37
43
  # Determine if tags should be printed with a null delimiter
38
44
  print0 = options[:print0] || false
39
45
  # Determine the filename for output, if specified
@@ -45,7 +51,7 @@ module JekyllTag
45
51
  tags.uniq!
46
52
 
47
53
  case format
48
- when "complete"
54
+ when :complete
49
55
  if filename || content
50
56
  content = filename ? IO.read(File.expand_path(filename)) : content
51
57
  parts = content.split(/---\s*\n/)
@@ -64,19 +70,19 @@ module JekyllTag
64
70
  else
65
71
  console_log tags.join("\n"), level: :error, err: false
66
72
  end
67
- when "list"
73
+ when :list
68
74
  # Join tags with a null character delimiter
69
75
  console_log tags.map(&:strip).join(print0 ? "\x00" : "\n"), level: :error, err: false, file: filename
70
- when "csv"
76
+ when :csv
71
77
  # Log the tags in CSV format
72
78
  console_log tags.to_csv
73
- when "json"
79
+ when :json
74
80
  # Create a hash with tags and optional filename, then log as JSON
75
81
  out = {}
76
82
  out["tags"] = tags
77
83
  out["path"] = filename if filename
78
84
  console_log out.to_json
79
- when "plist"
85
+ when :plist
80
86
  # Create a hash with optional filename, then log as plist
81
87
  out = {}
82
88
  out["path"] = filename if filename
@@ -139,7 +145,8 @@ module JekyllTag
139
145
  err = options[:err] || false
140
146
  options[:log] ||= false
141
147
 
142
- return unless DEBUG_LEVELS[level.to_sym] < @debug_level
148
+ threshold = @debug_level || 0
149
+ return unless DEBUG_LEVELS.fetch(level.to_sym, 0) < threshold
143
150
 
144
151
  if options[:log]
145
152
  if err
data/lib/jtag/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jtag
2
- VERSION = "0.1.22"
2
+ VERSION = "0.1.25"
3
3
  end
metadata CHANGED
@@ -1,56 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jtag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 2025-02-24 00:00:00.000000000 Z
11
+ date: 2026-11-04 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: rake
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - ">="
17
+ - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: '0'
19
+ version: '13.0'
19
20
  type: :development
20
21
  prerelease: false
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
- - - ">="
24
+ - - "~>"
24
25
  - !ruby/object:Gem::Version
25
- version: '0'
26
+ version: '13.0'
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: rdoc
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ">="
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: '0'
33
+ version: '6.6'
33
34
  type: :development
34
35
  prerelease: false
35
36
  version_requirements: !ruby/object:Gem::Requirement
36
37
  requirements:
37
- - - ">="
38
+ - - "~>"
38
39
  - !ruby/object:Gem::Version
39
- version: '0'
40
+ version: '6.6'
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: aruba
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - ">="
45
+ - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: '0'
47
+ version: '2.0'
47
48
  type: :development
48
49
  prerelease: false
49
50
  version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
- - - ">="
52
+ - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: '0'
54
+ version: '2.0'
54
55
  - !ruby/object:Gem::Dependency
55
56
  name: gli
56
57
  requirement: !ruby/object:Gem::Requirement
@@ -69,30 +70,31 @@ dependencies:
69
70
  name: plist
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
- - - ">="
73
+ - - "~>"
73
74
  - !ruby/object:Gem::Version
74
- version: '0'
75
+ version: '3.7'
75
76
  type: :runtime
76
77
  prerelease: false
77
78
  version_requirements: !ruby/object:Gem::Requirement
78
79
  requirements:
79
- - - ">="
80
+ - - "~>"
80
81
  - !ruby/object:Gem::Version
81
- version: '0'
82
+ version: '3.7'
82
83
  - !ruby/object:Gem::Dependency
83
84
  name: csv
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
- - - ">="
87
+ - - "~>"
87
88
  - !ruby/object:Gem::Version
88
- version: '0'
89
+ version: '3.2'
89
90
  type: :runtime
90
91
  prerelease: false
91
92
  version_requirements: !ruby/object:Gem::Requirement
92
93
  requirements:
93
- - - ">="
94
+ - - "~>"
94
95
  - !ruby/object:Gem::Version
95
- version: '0'
96
+ version: '3.2'
97
+ description:
96
98
  email: me@brettterpstra.com
97
99
  executables:
98
100
  - jtag
@@ -129,8 +131,10 @@ files:
129
131
  - lib/jtag/version.rb
130
132
  - mise.toml
131
133
  homepage: http://brettterpstra.com
132
- licenses: []
134
+ licenses:
135
+ -
133
136
  metadata: {}
137
+ post_install_message:
134
138
  rdoc_options:
135
139
  - "--title"
136
140
  - jtag
@@ -143,14 +147,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
147
  requirements:
144
148
  - - ">="
145
149
  - !ruby/object:Gem::Version
146
- version: '0'
150
+ version: '3.3'
147
151
  required_rubygems_version: !ruby/object:Gem::Requirement
148
152
  requirements:
149
153
  - - ">="
150
154
  - !ruby/object:Gem::Version
151
155
  version: '0'
152
156
  requirements: []
153
- rubygems_version: 3.6.4
157
+ rubygems_version: 3.5.3
158
+ signing_key:
154
159
  specification_version: 4
155
160
  summary: Auto-tagging and tagging tools for Jekyll
156
161
  test_files: []