utils 0.45.0 → 0.47.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ba83a3d4301571d5cefae45b004dbc83ac40d4e96844b66d2e9f53e70dfa326
4
- data.tar.gz: 87b84b9c9f1ee5fde106c521bebd6cff73653f2c172a6acf38615d1d7ce6b266
3
+ metadata.gz: d0124d1fabcb7124f92daf86d2f5eadf0b4b7028ac3bf13c6c866856324c5f33
4
+ data.tar.gz: 30e3b9b5d50d23fc37bf824d3dcd011bdd9e5bbd263436f16cca18aced0fb271
5
5
  SHA512:
6
- metadata.gz: 27e8d0af4da40ee35153d82288df743a74fa58e3477ba7ff100dba07237d29138ae49b79e060ab7628d7b96c63d52a1d9b42edeaa4872e56e230d81c8477c12c
7
- data.tar.gz: 679e3ab9e2039895ac417ec86d5f6af0205f9cc8171c8e27622d5231670595b0ee25f3978b215ad2e9c8e0a4162f573315b685dc3618d5faab5496b763fdb5f4
6
+ metadata.gz: 8c7e64ba2acc8e6d609d5f0ca5d3f7293baaa577aea9303493064662b1b376b34c6880fe57ea24d083c5ca96adfce031ef25f70ad941828c37c6886bc6e1a91a
7
+ data.tar.gz: a109c008631bcd14976ff48aa2a5b4fb0553d00abca7a875aeafd21f737e08d3498408043a732f8d0771e54a1e20af9029d1e9f2049c385e6a6a331800dcdcf2
data/Rakefile CHANGED
@@ -10,7 +10,8 @@ GemHadar do
10
10
  summary 'Some useful command line utilities'
11
11
  description 'This ruby gem provides some useful command line utilities'
12
12
  bindir 'bin'
13
- executables Dir['bin/*'].map(&File.method(:basename))
13
+ executables Dir['bin/*'].select { |e| File.new(e).readline =~ /ruby/ }.
14
+ map(&File.method(:basename))
14
15
  test_dir 'tests'
15
16
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble',
16
17
  'tags', '.bundle', '.DS_Store', '.byebug_history'
@@ -18,14 +19,15 @@ GemHadar do
18
19
  readme 'README.md'
19
20
  licenses << 'GPL-2.0'
20
21
 
21
- dependency 'tins', '~>1.14'
22
- dependency 'term-ansicolor', '~>1.3'
23
- dependency 'pstree', '~>0.3'
24
- dependency 'infobar'
25
- dependency 'mize'
26
- dependency 'search_ui'
27
22
  dependency 'drb'
28
- dependency 'all_images', '>=0.0.2'
23
+ dependency 'tins', '~> 1.14'
24
+ dependency 'term-ansicolor', '~> 1.3'
25
+ dependency 'pstree', '~> 0.3'
26
+ dependency 'infobar', '~> 0.8'
27
+ dependency 'mize', '~> 0.6'
28
+ dependency 'search_ui', '~> 0.0'
29
+ dependency 'all_images', '~> 0.5.0'
30
+ dependency 'ollama-ruby', '~> 0.3.0'
29
31
  development_dependency 'debug'
30
32
 
31
33
  install_library do
data/bin/changes ADDED
@@ -0,0 +1,157 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'ollama'
4
+ include Ollama
5
+ require 'tins'
6
+
7
+ def x(cmd)
8
+ output=`#{cmd}`
9
+ $?.success? or fail "failed to execute #{cmd.inspect}"
10
+ output
11
+ end
12
+
13
+ def find_highest_version_tag(filename)
14
+ File.open(filename, ?r) do |input|
15
+ tags = []
16
+ input.each do |line|
17
+ line.scan(/^## \d{4}-\d{2}-\d{2} v(\d+\.\d+\.\d+)$/) do
18
+ tags << $1
19
+ end
20
+ end
21
+ tags.map {
22
+ Tins::StringVersion::Version.new(_1)
23
+ }.max
24
+ end
25
+ end
26
+
27
+ def compute_change(range_from, range_to)
28
+ range_from = range_from.to_s.sub(/\Av?/, ?v)
29
+ range_to = range_to.to_s.sub(/\Av?/, ?v)
30
+ range = "#{range_from}..#{range_to}"
31
+
32
+ log=x("git log #{range}")
33
+ $?.success? or exit 1
34
+
35
+ date=x("git log -n1 --pretty='format:%cd' --date=short #{range_to}")
36
+
37
+ if log.strip.empty?
38
+ return <<~EOT
39
+
40
+ ## #{date} #{range_to}
41
+ EOT
42
+ end
43
+
44
+ base_url = ENV['OLLAMA_URL'] || 'http://%s' % ENV.fetch('OLLAMA_HOST')
45
+ model = ENV.fetch('OLLAMA_MODEL', 'llama3.1')
46
+
47
+ system = <<~EOT
48
+ You are a Ruby programmer generating a change log entry in markdown syntax,
49
+ summarizing the code changes for a new version in a professional way.
50
+ EOT
51
+
52
+ prompt = <<~EOT
53
+ - Summarize the changes in the following git log messages as bullet points.
54
+ - List significant changes as bullet points using markdown when applicable.
55
+ - Don't refer to single commits by sha1 hash.
56
+ - Don't add information about changes you are not sure about.
57
+ - Don't output any additional chatty remarks, notes, introductions,
58
+ communications.
59
+
60
+ #{log}
61
+ EOT
62
+
63
+ if ENV['DEBUG'].to_i == 1
64
+ STDERR.puts "system:\n#{system}"
65
+ STDERR.puts "prompt:\n#{prompt}"
66
+ end
67
+
68
+ options = Ollama::Options.new(
69
+ num_ctx: 8192,
70
+ num_predict: 1024,
71
+ temperature: 0,
72
+ #seed: 1337,
73
+ top_p: 1,
74
+ min_p: 0.1,
75
+ )
76
+
77
+ ollama = Client.new(base_url:, read_timeout: 120)
78
+ changes = ollama.generate(model:, system:, prompt:, options:, stream: false).response
79
+
80
+ return <<~EOT
81
+
82
+ ## #{date} #{range_to}
83
+
84
+ #{changes}
85
+ EOT
86
+ end
87
+
88
+ x("git fetch --tags")
89
+
90
+ case command = ARGV.shift
91
+ when 'range'
92
+ range = ARGV.shift
93
+ if range =~ /\A(.+)\.\.(.+)\z/
94
+ range_from, range_to = $1, $2
95
+ puts compute_change(range_from, range_to)
96
+ else
97
+ fail "need range of the form v1.2.3..v1.2.4"
98
+ end
99
+ when 'full', 'add'
100
+ ary = []
101
+ tags=x("git tag").lines.grep(/^v?\d+\.\d+\.\d+$/).map(&:chomp).map {
102
+ Tins::StringVersion::Version.new(_1.sub(/\Av/, ''))
103
+ }.sort
104
+ if command == 'full'
105
+ date=x("git log -n1 --pretty='format:%cd' --date=short v#{tags.first}").chomp
106
+ ary << <<~EOT
107
+
108
+ ## #{date} v#{tags.first}
109
+
110
+ * Start
111
+ EOT
112
+ tags.each_cons(2) do |range_from, range_to|
113
+ ary << compute_change(range_from, range_to)
114
+ end
115
+ ary.reverse!
116
+ ary.unshift <<~EOT
117
+ # Changes
118
+ EOT
119
+ puts ary
120
+ else
121
+ filename = ARGV.shift or fail 'need file to add to'
122
+ start_tag = find_highest_version_tag(filename)
123
+ tags = tags.drop_while { |t| t < start_tag }
124
+ ary = []
125
+ tags.each_cons(2) do |range_from, range_to|
126
+ ary << compute_change(range_from, range_to)
127
+ end
128
+ ary.empty? and exit
129
+ ary.reverse!
130
+ File.open(filename) do |input|
131
+ File.secure_write(filename) do |output|
132
+ start_add = nil
133
+ input.each do |line|
134
+ if start_add.nil? && line =~ /^# Changes$/
135
+ start_add = true
136
+ output.puts line
137
+ next
138
+ end
139
+ if start_add && line =~ /^$/
140
+ ary.each do |change|
141
+ STDERR.puts change
142
+ output.puts change
143
+ end
144
+ output.puts line
145
+ start_add = false
146
+ next
147
+ end
148
+ output.puts line
149
+ end
150
+ end
151
+ end
152
+ end
153
+ else
154
+ puts <<~end
155
+ Usage: #{File.basename($0)} help|range|full|add
156
+ end
157
+ end
data/bin/code_comment ADDED
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'utils'
4
+ require 'ollama'
5
+ include Ollama
6
+
7
+ def fetch_method(filename_linenumber)
8
+ result = ''
9
+ source_location = filename_linenumber.source_location
10
+ lf = Tins::LinesFile.for_filename(source_location.filename, source_location.linenumber)
11
+ if spaces = lf.match_backward(/^(\s*)def\s+(?:\S+?)(?:\(|\s*$)/)&.first
12
+ line_number_begin = lf.line_number
13
+ lf.match_forward(/^#{spaces}end/)
14
+ line_number_end = lf.line_number
15
+ line_number_begin.upto(line_number_end) do |line_number|
16
+ lf.line_number = line_number
17
+ result << lf.line
18
+ end
19
+ end
20
+ result
21
+ end
22
+
23
+ def fetch_file(filename_linenumber)
24
+ source_location = filename_linenumber.source_location
25
+ File.read(source_location.filename)
26
+ end
27
+
28
+ filename_linenumber = ARGV.shift or fail "require file_name as second argument"
29
+ method = fetch_method(filename_linenumber)
30
+ #file = fetch_file(filename_linenumber)
31
+ files = Dir['{lib,spec,test}/**/*.rb']
32
+ base_url = ENV['OLLAMA_URL'] || 'http://%s' % ENV.fetch('OLLAMA_HOST')
33
+ model = ENV.fetch('OLLAMA_MODEL', 'llama3.1')
34
+ #file = File.read(file_name)
35
+ #call_sites = %x(cscope -L -3 "#{method_name}" $(find . -name '*.rb') | awk '{ print $1 ":" $3 }').lines.map(&:chomp).uniq
36
+ #methods = call_sites.map { fetch_method(_1) } * ?\n
37
+
38
+ cheatsheet = <<EOT
39
+ # YARD CHEATSHEET http://yardoc.org
40
+
41
+ ## May 2020 - updated fork: https://gist.github.com/phansch/db18a595d2f5f1ef16646af72fe1fb0e
42
+
43
+ cribbed from http://pastebin.com/xgzeAmBn
44
+
45
+ Templates to remind you of the options and formatting for the different types of objects you might
46
+ want to document using YARD.
47
+
48
+ ## Modules
49
+
50
+ # Namespace for classes and modules that handle serving documentation over HTTP
51
+
52
+ ## Classes
53
+
54
+ # Abstract base class for CLI utilities. Provides some helper methods for
55
+ # the option parser
56
+ #
57
+ # @author Full Name
58
+ # @abstract
59
+ # @attr [Types] attribute_name a full description of the attribute
60
+ # @attr_reader [Types] name description of a readonly attribute
61
+ # @attr_writer [Types] name description of writeonly attribute
62
+ # @deprecated Describe the reason or provide alt. references here
63
+
64
+ ## Methods
65
+
66
+ # An alias to {Parser::SourceParser}'s parsing method
67
+ #
68
+ # @author Donovan Bray
69
+ #
70
+ # @see http://example.com Description of URL
71
+ # @see SomeOtherClass#method
72
+ #
73
+ # @deprecated Use {#my_new_method} instead of this method because
74
+ # it uses a library that is no longer supported in Ruby 1.9.
75
+ # The new method accepts the same parameters.
76
+ #
77
+ # @abstract
78
+ # @private
79
+ #
80
+ # @param subject [String] The subject
81
+ # @param from [String] ('nobody') From address
82
+ # @param to [String] Recipient email
83
+ # @param body [String] ('') The email's body
84
+ #
85
+ # @param (see User#initialize)
86
+ # @param [OptionParser] opts the option parser object
87
+ # @param [Array<String>] args the arguments passed from input. This
88
+ # array will be modified.
89
+ # @param [Array<String, Symbol>] list the list of strings and symbols.
90
+ #
91
+ # The options parsed out of the commandline.
92
+ # Default options are:
93
+ # :format => :dot
94
+ #
95
+ # @example Reverse a string
96
+ # "mystring.reverse" #=> "gnirtsym"
97
+ #
98
+ # @example Parse a glob of files
99
+ # YARD.parse('lib/**/*.rb')
100
+ #
101
+ # @raise [ExceptionClass] description
102
+ #
103
+ # @return [optional, types, ...] description
104
+ # @return [true] always returns true
105
+ # @return [void]
106
+ # @return [String, nil] the contents of our object or nil
107
+ # if the object has not been filled with data.
108
+ #
109
+ # We don't care about the "type" here:
110
+ # @return the object
111
+ #
112
+ # @return [String, #read] a string or object that responds to #read
113
+ # @return description here with no types
114
+
115
+ ## Anywhere
116
+
117
+ # @todo Add support for Jabberwocky service
118
+ # There is an open source Jabberwocky library available
119
+ # at http://somesite.com that can be integrated easily
120
+ # into the project.
121
+
122
+ ## Blocks
123
+
124
+ # for block {|a, b, c| ... }
125
+ # @yield [a, b, c] Description of block
126
+ #
127
+ # @yieldparam [optional, types, ...] argname description
128
+ # @yieldreturn [optional, types, ...] description
129
+ EOT
130
+
131
+ system = <<EOT
132
+ You are a Ruby code commenter that writes succinct, simple ruby YARD comments.
133
+ EOT
134
+ system = nil
135
+
136
+ prompt = <<EOT
137
+ Analyze this code:
138
+
139
+ #{files.map { File.read(_1) } * ?\n}
140
+
141
+ Then output a succinct YARD comment for the method below.
142
+
143
+ Follow the following guidelines:
144
+ - Do not repeat the ruby method code.
145
+ - Do not use `, `ruby, ```, ```ruby in your response.
146
+ - Start each line of your comment with a single # character.
147
+
148
+ Here's a cheatsheet for YARD you can peek into:
149
+
150
+ #{cheatsheet}
151
+
152
+ And this is the method you should document:
153
+
154
+ #{method}
155
+ EOT
156
+
157
+ options = Ollama::Options.new(
158
+ #repeat_penalty: 1.8,
159
+ num_ctx: 8192,
160
+ num_predict: 512,
161
+ temperature: 0,
162
+ #repeat_last_n: -1,
163
+ ##seed: 1337,
164
+ top_p: 1,
165
+ min_p: 0.1,
166
+ )
167
+
168
+ if ENV['DEBUG'].to_i == 1
169
+ File.open('debug.log', ?w) do |log|
170
+ log.puts "system:\n#{system}"
171
+ log.puts "prompt:\n#{prompt}"
172
+ log.puts "filename_linenumber: #{filename_linenumber}"
173
+ log.puts JSON.pretty_generate(options)
174
+ end
175
+ end
176
+
177
+ ollama = Client.new(base_url:, read_timeout: 120)
178
+ ollama.generate(model:, system:, prompt:, options:, stream: false, &Print)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ config =
4
+ if (xdg = ENV['XDG_CONFIG_HOME'].to_s.strip).size == 0
5
+ File.join(ENV.fetch('HOME'), '.config', 'commit_message')
6
+ else
7
+ File.join(xdg, 'commit_message')
8
+ end
9
+
10
+ exec 'ollama_cli', '-M', "#{config}/options.json",
11
+ '-s', "#{config}/system.txt", '-p', "#{config}/prompt.txt"
data/bin/print_method ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'utils'
4
+
5
+ inputs = ARGV.empty? ? STDIN : ARGV
6
+
7
+ inputs.each do |filename_linenumber|
8
+ source_location = filename_linenumber.source_location
9
+ lf = Tins::LinesFile.for_filename(source_location.filename, source_location.linenumber)
10
+ if spaces = lf.match_backward(/^(\s*)def\s+(?:\S+?)(?:\(|\s*$)/)&.first
11
+ line_number_begin = lf.line_number
12
+ lf.match_forward(/^#{spaces}end/)
13
+ line_number_end = lf.line_number
14
+ line_number_begin.upto(line_number_end) do |line_number|
15
+ lf.line_number = line_number
16
+ puts lf.line
17
+ end
18
+ end
19
+ end
data/bin/sync_dir CHANGED
@@ -81,7 +81,7 @@ diff_dir.each_line do |line|
81
81
  system "vimdiff #{s.inspect} #{d.inspect}"
82
82
  when /\Aq/i
83
83
  exit
84
- else
84
+ else
85
85
  next
86
86
  end
87
87
  redo
data/lib/utils/irb.rb CHANGED
@@ -229,6 +229,10 @@ module Utils
229
229
  temp.read
230
230
  end
231
231
 
232
+ def le(with_stderr = false, &block)
233
+ less(with_stderr) { block.call(self) }
234
+ end
235
+
232
236
  # Use pager on the output of the commands given in the block.
233
237
  def less(with_stderr = false, &block)
234
238
  IO.popen($pager, 'w') do |f|
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.45.0'
3
+ VERSION = '0.47.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,35 +1,36 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.45.0 ruby lib
2
+ # stub: utils 0.47.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.45.0".freeze
6
+ s.version = "0.47.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-07-08"
11
+ s.date = "2024-09-06"
12
12
  s.description = "This ruby gem provides some useful command line utilities".freeze
13
13
  s.email = "flori@ping.de".freeze
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, "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]
14
+ s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "check-yaml".freeze, "classify".freeze, "code_comment".freeze, "commit_message".freeze, "create_cstags".freeze, "create_tags".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "number_files".freeze, "on_change".freeze, "path".freeze, "print_method".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]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/file_xt.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
16
- s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/check-yaml".freeze, "bin/classify".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/fix-brew".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/number_files".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/probe".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/file_xt.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "utils.gemspec".freeze]
16
+ s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/check-yaml".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/commit_message".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/number_files".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/file_xt.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "utils.gemspec".freeze]
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.14".freeze
20
+ s.rubygems_version = "3.5.18".freeze
21
21
  s.summary = "Some useful command line utilities".freeze
22
22
 
23
23
  s.specification_version = 4
24
24
 
25
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.15.0".freeze])
25
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.17.0".freeze])
26
26
  s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
27
+ s.add_runtime_dependency(%q<drb>.freeze, [">= 0".freeze])
27
28
  s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.14".freeze])
28
29
  s.add_runtime_dependency(%q<term-ansicolor>.freeze, ["~> 1.3".freeze])
29
30
  s.add_runtime_dependency(%q<pstree>.freeze, ["~> 0.3".freeze])
30
- s.add_runtime_dependency(%q<infobar>.freeze, [">= 0".freeze])
31
- s.add_runtime_dependency(%q<mize>.freeze, [">= 0".freeze])
32
- s.add_runtime_dependency(%q<search_ui>.freeze, [">= 0".freeze])
33
- s.add_runtime_dependency(%q<drb>.freeze, [">= 0".freeze])
34
- s.add_runtime_dependency(%q<all_images>.freeze, [">= 0.0.2".freeze])
31
+ s.add_runtime_dependency(%q<infobar>.freeze, ["~> 0.8".freeze])
32
+ s.add_runtime_dependency(%q<mize>.freeze, ["~> 0.6".freeze])
33
+ s.add_runtime_dependency(%q<search_ui>.freeze, ["~> 0.0".freeze])
34
+ s.add_runtime_dependency(%q<all_images>.freeze, ["~> 0.5.0".freeze])
35
+ s.add_runtime_dependency(%q<ollama-ruby>.freeze, ["~> 0.3.0".freeze])
35
36
  end
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.45.0
4
+ version: 0.47.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-07-08 00:00:00.000000000 Z
11
+ date: 2024-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.15.0
19
+ version: 1.17.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.15.0
26
+ version: 1.17.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: drb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: tins
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -84,86 +98,88 @@ dependencies:
84
98
  name: infobar
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: '0.8'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: '0.8'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: mize
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
117
+ version: '0.6'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0'
124
+ version: '0.6'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: search_ui
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ">="
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '0'
131
+ version: '0.0'
118
132
  type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ">="
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '0'
138
+ version: '0.0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: drb
140
+ name: all_images
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '0'
145
+ version: 0.5.0
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '0'
152
+ version: 0.5.0
139
153
  - !ruby/object:Gem::Dependency
140
- name: all_images
154
+ name: ollama-ruby
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: 0.0.2
159
+ version: 0.3.0
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: 0.0.2
166
+ version: 0.3.0
153
167
  description: This ruby gem provides some useful command line utilities
154
168
  email: flori@ping.de
155
169
  executables:
156
170
  - ascii7
157
171
  - blameline
172
+ - changes
158
173
  - check-yaml
159
174
  - classify
175
+ - code_comment
176
+ - commit_message
160
177
  - create_cstags
161
178
  - create_tags
162
179
  - discover
163
180
  - edit
164
181
  - edit_wait
165
182
  - enum
166
- - fix-brew
167
183
  - git-empty
168
184
  - git-versions
169
185
  - json_check
@@ -172,6 +188,7 @@ executables:
172
188
  - number_files
173
189
  - on_change
174
190
  - path
191
+ - print_method
175
192
  - probe
176
193
  - rd2md
177
194
  - search
@@ -210,15 +227,17 @@ files:
210
227
  - Rakefile
211
228
  - bin/ascii7
212
229
  - bin/blameline
230
+ - bin/changes
213
231
  - bin/check-yaml
214
232
  - bin/classify
233
+ - bin/code_comment
234
+ - bin/commit_message
215
235
  - bin/create_cstags
216
236
  - bin/create_tags
217
237
  - bin/discover
218
238
  - bin/edit
219
239
  - bin/edit_wait
220
240
  - bin/enum
221
- - bin/fix-brew
222
241
  - bin/git-empty
223
242
  - bin/git-versions
224
243
  - bin/json_check
@@ -227,6 +246,7 @@ files:
227
246
  - bin/number_files
228
247
  - bin/on_change
229
248
  - bin/path
249
+ - bin/print_method
230
250
  - bin/probe
231
251
  - bin/rd2md
232
252
  - bin/search
@@ -277,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
297
  - !ruby/object:Gem::Version
278
298
  version: '0'
279
299
  requirements: []
280
- rubygems_version: 3.5.14
300
+ rubygems_version: 3.5.18
281
301
  signing_key:
282
302
  specification_version: 4
283
303
  summary: Some useful command line utilities
data/bin/fix-brew DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- PREFIX=$(brew --prefix)
4
- sudo chgrp -R brew $PREFIX
5
- sudo chmod -R g+w $PREFIX