utils 0.41.0 → 0.42.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: 88af92dc7e32b6d24fef9951b3cac7ee7a053c2b803e03f56e14a67db59e947e
4
- data.tar.gz: 282bde2c79a6f3bb47f84aee99bf8a3bd3dc234034f548088c15647f7a8b1592
3
+ metadata.gz: 2261e1420324f65e6793524f113440a9cecfcc6a4026da61957d5991aa6237b0
4
+ data.tar.gz: c954c1928241f54ab0d37aff885f95ba26d4c7ed786814e5efd4028a18499a69
5
5
  SHA512:
6
- metadata.gz: 971526eb0818d727a0810720c6d25647dcac76336276c9465064f5288700fc10d36f1ef42e5903704f1208670ed318c0c58c55d48c8155f8957d972636074280
7
- data.tar.gz: 4b63131b02ab4865237b2438fb1be38e9fff1f6c2730067ae95386e94329569790611b55d71f4a563c9a79e18a10179733a16ec31aac9b12dfe59326bdc90dd9
6
+ metadata.gz: 5a9c602a87e531234c595ffb91cdc3c18b690400cc59f52b49ffa2a5032b5425add0acc032898ddd8c3ed529c53c5451edca0e4fae9f24813e70275388f4356c
7
+ data.tar.gz: 5511eaae6e97cd9069ab65164eedccaab6db0fb3636d8724dcc392de2eb9fdd3c70a60812027044999ce1f151216e1857af921778e5d744aec0706588fb2c786
data/bin/create_tags CHANGED
@@ -4,7 +4,7 @@ require 'infobar'
4
4
 
5
5
  paths = %w[ . ] + `bundle list --paths`.lines.map(&:chomp)
6
6
  cmd = %w[ ctags --recurse=yes --languages=Ruby,C ] + paths
7
- Infobar.busy(label: 'Creating tags') { system *cmd }
7
+ Infobar.busy(label: 'Creating tags') { system(*cmd) }
8
8
  if megabytes = File.size('tags').to_f / 1024 ** 2 rescue nil
9
9
  infobar.puts 'Created %.3fM of tags.' % megabytes
10
10
  end
data/bin/discover CHANGED
@@ -12,7 +12,7 @@ def edit_files(*paths, pick: false, wait: true)
12
12
  if pick
13
13
  if paths.size > 1
14
14
  path = complete(prompt: 'Pick? ') do |p|
15
- paths.grep /#{p}/
15
+ paths.grep(/#{p}/)
16
16
  end
17
17
  else
18
18
  path = paths.first
@@ -83,7 +83,6 @@ search = -> * {
83
83
  f = nil
84
84
  pattern = pattern.dup
85
85
  args[?n] = Term::ANSIColor.terminal_lines - 1
86
- path = nil
87
86
  found = Search.new(
88
87
  match: -> answer {
89
88
  pattern.replace answer
@@ -95,9 +94,7 @@ search = -> * {
95
94
  matches.each_with_index.map { |l, i| (i == selector ? '> ' : ' ') + l }.join(?\n)
96
95
  },
97
96
  found: -> _answer, matches, selector {
98
- if f
99
- path = f.paths[selector]
100
- end
97
+ f.paths[selector] if f
101
98
  },
102
99
  output: STDERR
103
100
  ).start
@@ -117,9 +114,9 @@ case
117
114
  when args[?s]
118
115
  search.()
119
116
  when args[?E]
120
- edit_files *finder.().paths, pick: true
117
+ edit_files(*finder.().paths, pick: true)
121
118
  when args[?e]
122
- edit_files *finder.().search.paths
119
+ edit_files(*finder.().search.paths)
123
120
  when args[?D]
124
121
  args[?d] = true
125
122
  paths = finder.().load_paths.select { |p| File.directory?(p) }.reverse
data/bin/json_check CHANGED
@@ -5,6 +5,6 @@ require 'json'
5
5
  begin
6
6
  JSON.parse(ARGF.read)
7
7
  exit 0
8
- rescue JSON::ParserError => e
8
+ rescue JSON::ParserError
9
9
  exit 1
10
10
  end
data/bin/search CHANGED
@@ -18,7 +18,7 @@ end
18
18
 
19
19
  def read_line(path)
20
20
  filename, lineno = path.source_location
21
- line = File.open(filename) do |file|
21
+ File.open(filename) do |file|
22
22
  file.lazy.each_with_index.select { |l, n| n + 1 == lineno }.first&.first
23
23
  end
24
24
  end
@@ -71,8 +71,6 @@ def replace_ask(editor, path, pattern, replace, all)
71
71
  when ?e
72
72
  editor.edit(path.strip)
73
73
  break false
74
- when ?a
75
- break true
76
74
  else
77
75
  next
78
76
  end
@@ -95,7 +93,7 @@ def edit_files(pattern, paths, pick: false, replace: nil)
95
93
  when pick
96
94
  if paths.size > 1
97
95
  path = complete(prompt: 'Pick? ') do |p|
98
- paths.grep /#{p}/
96
+ paths.grep(/#{p}/)
99
97
  end
100
98
  else
101
99
  path = paths.first
@@ -139,6 +137,7 @@ Options are
139
137
  -r REPLACE replace the searched match with REPLACE
140
138
  -b also search binary files
141
139
  -g use git to determine author of the line
140
+ -G AUTHOR only display lines authored by AUTHOR
142
141
  -a CSET use only character set CSET from PATTERN
143
142
  -v be verbose
144
143
  -h display this help
@@ -148,7 +147,7 @@ Version is #{File.basename($0)} #{Utils::VERSION}.
148
147
  exit 1
149
148
  end
150
149
 
151
- args = go 'r:p:I:A:B:C:s:S:n:N:a:i:cfFlLeEvbgh'
150
+ args = go 'r:p:I:A:B:C:s:S:n:N:a:i:G:cfFlLeEvbgh'
152
151
  args[?h] and usage
153
152
  pattern = ARGV.shift or usage
154
153
  roots = (ARGV.empty? ? [ Dir.pwd ] : ARGV).map { |f| File.expand_path(f) }
data/lib/utils/grepper.rb CHANGED
@@ -97,9 +97,12 @@ class Utils::Grepper
97
97
  @output.each do |l|
98
98
  blamer = LineBlamer.for_line(l)
99
99
  if blame = blamer.perform
100
+ author = nil
100
101
  blame.sub!(/^[0-9a-f^]+/) { Term::ANSIColor.yellow($&) }
101
- blame.sub!(/\(([^)]+)\)/) { "(#{Term::ANSIColor.red($1)})" }
102
- puts "#{blame.chomp} #{Term::ANSIColor.blue(l)}"
102
+ blame.sub!(/\(([^)]+)\)/) { author = $1; "(#{Term::ANSIColor.red($1)})" }
103
+ if !@args[?G] || author&.downcase&.match?(@args[?G].downcase)
104
+ puts "#{blame.chomp} #{Term::ANSIColor.blue(l)}"
105
+ end
103
106
  end
104
107
  end
105
108
  when @args[?l], @args[?e], @args[?E], @args[?r]
data/lib/utils/irb.rb CHANGED
@@ -51,7 +51,7 @@ module Utils
51
51
  end
52
52
 
53
53
  def yri(*patterns)
54
- ri *patterns, doc: 'yri'
54
+ ri(*patterns, doc: 'yri')
55
55
  end
56
56
 
57
57
  def irb_open(url = nil, &block)
@@ -5,15 +5,7 @@ module Utils
5
5
  end
6
6
 
7
7
  def self.for_line(line)
8
- location = line.source_location and new *location
9
- end
10
-
11
- def self.blame(line)
12
- blamer = for_line(line)
13
- if blame = blamer.perform
14
- blame.sub!(/^[0-9a-f^]+/) { Term::ANSIColor.yellow($&) }
15
- blame.sub!(/\(([^)]+)\)/) { "(#{Term::ANSIColor.red($1)})" }
16
- end
8
+ location = line.source_location and new(*location)
17
9
  end
18
10
 
19
11
  def perform(options = '')
@@ -89,7 +89,7 @@ module Utils
89
89
  def help
90
90
  docs = doc_annotations.sort_by(&:first)
91
91
  docs_size = docs.map { |a| a.first.size }.max
92
- format = '%-20s %-3s %s'
92
+ format = "%-#{docs_size}s %-3s %s"
93
93
  output_message [
94
94
  (format % %w[ command sho description ]).on_color(20).white
95
95
  ] << docs.map { |cmd, doc|
@@ -198,7 +198,7 @@ module Utils
198
198
 
199
199
  def run_job(job)
200
200
  output_message " → #{job.inspect} now running.", type: :info
201
- system *cmd(job.args)
201
+ system(*cmd(job.args))
202
202
  message = " → #{job.inspect} was just run"
203
203
  if $?.success?
204
204
  job.ok = true
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.41.0'
3
+ VERSION = '0.42.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/utils.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.41.0 ruby lib
2
+ # stub: utils 0.42.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.41.0".freeze
6
+ s.version = "0.42.0".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2024-04-17"
11
+ s.date = "2024-04-24"
12
12
  s.description = "This ruby gem provides some useful command line utilities".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.executables = ["ascii7".freeze, "blameline".freeze, "check-yaml".freeze, "classify".freeze, "create_cstags".freeze, "create_tags".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "fix-brew".freeze, "git-empty".freeze, "git-versions".freeze, "irb_connect".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "number_files".freeze, "on_change".freeze, "path".freeze, "probe".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze]
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.homepage = "http://github.com/flori/utils".freeze
18
18
  s.licenses = ["GPL-2.0".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "Utils - Some useful command line utilities".freeze, "--main".freeze, "README.md".freeze]
20
- s.rubygems_version = "3.5.3".freeze
20
+ s.rubygems_version = "3.5.9".freeze
21
21
  s.summary = "Some useful command line utilities".freeze
22
22
 
23
23
  s.specification_version = 4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.0
4
+ version: 0.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-17 00:00:00.000000000 Z
11
+ date: 2024-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  - !ruby/object:Gem::Version
282
282
  version: '0'
283
283
  requirements: []
284
- rubygems_version: 3.5.3
284
+ rubygems_version: 3.5.9
285
285
  signing_key:
286
286
  specification_version: 4
287
287
  summary: Some useful command line utilities