utils 0.96.0 → 0.98.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: 5021e17950b487c03dcd9cffee109854cbfc111ec2707506ef57c5aa9a276232
4
- data.tar.gz: 2c51ddcec5c7874b256122b247d1751fffd66846a28c9f29fbb74ed53a077c07
3
+ metadata.gz: b7b648dddabd119635d9e6f1371b5272b44b27118610b145a3fcec5f2b125ac1
4
+ data.tar.gz: 2aaa35ea9a54d83f078fcff03ea95a932322ef72ddcb7b36d4d9a4bac1d80f6f
5
5
  SHA512:
6
- metadata.gz: 0d70edd17ffdbc5a62af5b1893c78c6a1a7dd1b474ca4b00a1a08ddc0c8935bb6904d6a6cf912c5b86a119e30f82a64f337e79600bd2bb69e9809d11a2699a5b
7
- data.tar.gz: e17513476a6a16b0e4b69431874c8e9c3b3fa73d9f3a208bebca5f6220f72d5327bb16ef269ca5ccf0675451d02b0edda3cd014b42021d12e2fe3296d0f9c85f
6
+ metadata.gz: 4aa8628eed6a56f6e8c1da5d336bec9bd76417dc1006a212504b3ce0bdf7dc4d293c26fbea777a8e8a3af490eb5a54ab24156dafd579b81d07cfe1a4937038b3
7
+ data.tar.gz: b83d729b88f9588665d14d0508b4e7592ccd0e925dbc59c9da60f282a5033e8912e23047a64443c178f36afa13c6ef05bb294079f0741beaebf3dd46dd8f9f66
data/README.md CHANGED
@@ -100,9 +100,16 @@ gem install utils
100
100
  - **`serve`** - Simple HTTP server launcher
101
101
  - **`ssh-tunnel`** - Create SSH tunnel to remote host
102
102
 
103
+ ### ⌨️ Interactive
104
+
105
+ - **`irb_client`** - Send code to a running IRB server for evaluation and
106
+ execution (start the server with `irb_server` in the session)
107
+
103
108
  ### 🎨 Slacking
104
109
 
105
110
  - **`ascii7`** - Generate ASCII art from text
111
+ - **`charpick`** - Fuzzy-search Unicode characters by name and copy the
112
+ glyph to the clipboard
106
113
  - **`enum`** - Enumerate files and directories with line counts
107
114
  - **`rainbow`** - Display rainbow-colored banner text
108
115
 
data/Rakefile CHANGED
@@ -31,7 +31,7 @@ GemHadar do
31
31
  dependency 'mize', '~> 0.6'
32
32
  dependency 'amatch', '~> 0.6'
33
33
  dependency 'kramdown-ansi', '>= 0.4'
34
- dependency 'search_ui', '>= 0.0.9'
34
+ dependency 'search_ui', '>= 0.2.0'
35
35
  dependency 'all_images', '>= 0.12'
36
36
  dependency 'starscope'
37
37
  dependency 'webrick'
data/bin/changes CHANGED
@@ -15,13 +15,13 @@
15
15
  # - Configuration files in ~/.config/changes/
16
16
  # - system.txt: System prompt for LLM
17
17
  # - prompt.txt: Template for changelog generation
18
- # - client.json: Ollama client settings
19
- # - options.json: Generation options (temperature, etc.)
20
18
  #
21
19
  # Environment variables:
22
20
  # OLLAMA_URL: Base URL of Ollama server OR
23
21
  # OLLAMA_HOST: Host of Ollama server
24
22
  # OLLAMA_MODEL: Model to use (default: llama3.1)
23
+ # OLLAMA_CLIENT: JSON client configuration
24
+ # OLLAMA_MODEL_OPTIONS: JSON model options
25
25
  # XDG_CONFIG_HOME: Custom config directory location
26
26
  # DEBUG: Set to 1 for verbose output
27
27
 
@@ -111,7 +111,7 @@ def compute_change(range_from, range_to, future_tag: range_to)
111
111
  model = ENV.fetch('OLLAMA_MODEL', 'llama3.1')
112
112
  system = config.read('system.txt')
113
113
  prompt = config.read('prompt.txt') + "\n\n#{log}\n"
114
- client_config = Client::Config.load_from_json(config + 'client.json')
114
+ client_config = Client::Config[**JSON.parse(ENV.fetch('OLLAMA_CLIENT', '{}'))]
115
115
  client_config.base_url = base_url
116
116
 
117
117
  if ENV['DEBUG'].to_i == 1
@@ -120,7 +120,7 @@ def compute_change(range_from, range_to, future_tag: range_to)
120
120
  end
121
121
 
122
122
  ollama = Client.configure_with(client_config)
123
- options = Options.load_from_json "#{config}/options.json"
123
+ options = Options.from_hash(JSON.parse(ENV.fetch('OLLAMA_MODEL_OPTIONS', '{}')))
124
124
  changes = ollama.generate(model:, system:, prompt:, options:, stream: false, think: false)
125
125
  changes = changes.response.gsub(/\t/, ' ')
126
126
 
data/bin/charpick ADDED
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # charpick — search Unicode characters by name and copy the glyph to the
4
+ # system clipboard.
5
+ #
6
+ # The data source is UnicodeData.txt (UCD), cached under
7
+ # $XDG_CACHE_HOME/charpick/UnicodeData.txt and downloaded on first use.
8
+ #
9
+ # Usage:
10
+ # charpick # interactive search
11
+ # charpick rightarrow # pre-fill the search field
12
+ #
13
+ # Requires the search_ui (>= 0.2), amatch, and tins gems.
14
+
15
+ require 'utils'
16
+ require 'net/http'
17
+ require 'uri'
18
+ require 'search_ui'
19
+ require 'tins/xt'
20
+ require 'amatch'
21
+
22
+ module Charpick
23
+ # A single Unicode character with its codepoint and lowercased name.
24
+ Entry = Data.define(:codepoint, :char, :name)
25
+
26
+ DATA_URL = 'https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt'
27
+ CACHE_DIR = Utils::XDG::XDG_CACHE_HOME.sub_dir_path('charpick')
28
+ DATA_FILE = CACHE_DIR + 'UnicodeData.txt'
29
+
30
+ # Loads the character database, downloading it on first run.
31
+ #
32
+ # @return [ Array<Charpick::Entry> ] all named Unicode characters
33
+ def self.data
34
+ download unless File.exist?(DATA_FILE)
35
+ File.readlines(DATA_FILE, chomp: true).filter_map do |line|
36
+ codepoint, name, = line.split(';')
37
+ next unless name
38
+ code = Integer(codepoint, 16)
39
+ Entry.new(code, [code].pack(?U), name.downcase.tr(' ', '-'))
40
+ rescue
41
+ end
42
+ end
43
+
44
+ # Downloads the UCD character database into the cache directory.
45
+ #
46
+ # @return [ void ]
47
+ def self.download
48
+ uri = URI(DATA_URL)
49
+ Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
50
+ File.write(DATA_FILE, http.get(uri.request_uri).body)
51
+ end
52
+ end
53
+
54
+ # Max number of result rows to render (fits the terminal height).
55
+ #
56
+ # @return [ Integer ]
57
+ def self.limit
58
+ Tins::Terminal.lines - 1
59
+ end
60
+
61
+ # Finds the first available clipboard command.
62
+ #
63
+ # @return [ [ String, Array<String> ], nil ] the command path with its
64
+ # arguments, or nil if no clipboard tool is installed
65
+ def self.clipboard
66
+ commands = {
67
+ 'pbcopy' => [],
68
+ 'wl-copy' => [],
69
+ 'xclip' => %w[ -selection clipboard ],
70
+ 'xsel' => %w[ --clipboard --input ],
71
+ }
72
+ commands.each do |name, args|
73
+ path = `which #{name}`.full?(:chomp) or next
74
+ return [ path, args ]
75
+ end
76
+ nil
77
+ end
78
+
79
+ # Copies a string to the system clipboard.
80
+ #
81
+ # @param char [ String ] the string to copy
82
+ # @return [ Boolean ] true on success, false if no clipboard tool ran
83
+ def self.copy(char)
84
+ cmd = clipboard
85
+ return false unless cmd
86
+ IO.popen([ cmd[0], *cmd[1] ], 'w') { |io| io.write(char) }
87
+ true
88
+ rescue StandardError
89
+ false
90
+ end
91
+ end
92
+
93
+ entries = Charpick.data
94
+ limit = Charpick.limit
95
+
96
+ state = SearchUI::Search::State.new(ARGV.join(' '), 0)
97
+ selected = SearchUI::Search.new(
98
+ match: -> answer {
99
+ return [] if answer.empty?
100
+ matcher = Amatch::PairDistance.new(answer.downcase)
101
+ entries.map { |entry| [ entry, matcher.similar(entry.name, ?-) ] }
102
+ .select { |_, score| score > 0 }
103
+ .sort_by { |_, score| -score }
104
+ .first(limit)
105
+ .map(&:first)
106
+ },
107
+ query: -> _answer, matches, selector {
108
+ return 'Type to search names (e.g. "rightarrow").' if matches.empty?
109
+ matches.each_with_index.map do |entry, i|
110
+ line = "%s U+%04X %s" % [ entry.char, entry.codepoint, entry.name ]
111
+ i == selector ? "→ " + SearchUI::Search.on_blue(line) : " " + line
112
+ end * ?\n
113
+ },
114
+ found: -> _answer, matches, selector { matches[selector] },
115
+ state:
116
+ ).start
117
+
118
+ exit 1 if selected.nil?
119
+
120
+ copied = Charpick.copy(selected.char)
121
+ puts format('U+%04X %s %s — %s', selected.codepoint, selected.char,
122
+ selected.name, copied ? 'copied to clipboard ✓' : 'printed (no clipboard)')
123
+ puts format('ruby escape: "\\u%04x"', selected.codepoint)
data/bin/code_comment CHANGED
@@ -16,12 +16,13 @@
16
16
  # - Configuration files in ~/.config/code_comment/
17
17
  # - system.txt: System prompt for LLM
18
18
  # - prompt.txt: Template for comment generation
19
- # - client.json: Ollama client settings
20
- # - options.json: Generation options (temperature, etc.)
19
+ #
21
20
  #
22
21
  # Environment variables:
23
22
  # OLLAMA_URL: Base URL of Ollama server
24
23
  # OLLAMA_MODEL: Model to use (default: llama3.1)
24
+ # OLLAMA_CLIENT: JSON client configuration
25
+ # OLLAMA_MODEL_OPTIONS: JSON model options
25
26
  # XDG_CONFIG_HOME: Custom config directory location
26
27
  # DEBUG: Set to 1 for verbose output and debug.log creation
27
28
  #
@@ -254,10 +255,10 @@ default_options = JSON(
254
255
  min_p: 0.1,
255
256
  )
256
257
 
257
- client_config = Client::Config.load_from_json $config_dir + 'client.json'
258
+ client_config = Client::Config[**JSON.parse(ENV.fetch('OLLAMA_CLIENT', '{}'))]
258
259
  client_config.base_url = base_url
259
260
  ollama = Client.configure_with(client_config)
260
- options = JSON.parse($config_dir.read('options.json', default: default_options))
261
+ options = Options.from_hash(JSON.parse(ENV.fetch('OLLAMA_MODEL_OPTIONS', default_options)))
261
262
 
262
263
  if ENV['DEBUG'].to_i == 1
263
264
  File.open('debug.log', ?w) do |log|
data/bin/commit_message CHANGED
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # The script automatically:
12
12
  # - Determines current git branch name
13
- # - Loads configuration files (client.json, options.json, system.txt, prompt.txt)
13
+ # - Loads configuration files (system.txt, prompt.txt)
14
14
  # - Generates commit message using ollama_cli with the current diff as input
15
15
  #
16
16
  # Requirements:
@@ -20,10 +20,12 @@
20
20
  # - Configuration files in $XDG_CONFIG_HOME/commit_message/
21
21
  #
22
22
  # Configuration files:
23
- # - client.json: Ollama API client configuration
24
- # - options.json: Generation options
25
23
  # - system.txt: System prompt for AI model
26
24
  # - prompt.txt: Commit message template, contains %{branch} and %{stdin}
25
+ #
26
+ # Environment variables (used by ollama_cli):
27
+ # - OLLAMA_CLIENT: JSON client configuration
28
+ # - OLLAMA_MODEL_OPTIONS: JSON model options
27
29
 
28
30
  require 'utils'
29
31
  include Utils::XDG
@@ -31,6 +33,6 @@ include Utils::XDG
31
33
  config = XDG_CONFIG_HOME + 'commit_message'
32
34
 
33
35
  branch = `git rev-parse --abbrev-ref HEAD`.chomp
34
- exec 'ollama_cli', '-c', config + 'client.json',
35
- '-M', config + 'options.json', '-P', "branch=#{branch}",
36
+ exec 'ollama_cli',
37
+ '-P', "branch=#{branch}",
36
38
  '-s', config + 'system.txt', '-p', config + 'prompt.txt'
data/bin/irb_client CHANGED
@@ -1,4 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
+ #
3
+ # irb_client — interact with a running IRB session remotely.
4
+ #
5
+ # Start the server by typing `irb_server` in your IRB session (provided by
6
+ # require 'utils/irb'). Then send code snippets from the command line:
7
+ #
8
+ # echo '2 + 2' | irb_client eval_snippet # => 4
9
+ # echo 'puts "hi"' | irb_client execute_snippet
10
+ # irb_client stop_server
2
11
 
3
12
  require 'utils/irb'
4
13
  include Utils::IRB
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.96.0'
3
+ VERSION = '0.98.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,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.96.0 ruby lib
2
+ # stub: utils 0.98.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.96.0".freeze
6
+ s.version = "0.98.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]
@@ -11,19 +11,19 @@ Gem::Specification.new do |s|
11
11
  s.date = "1980-01-02"
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, "changes".freeze, "classify".freeze, "code_comment".freeze, "code_indexer".freeze, "commit_message".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "irb_client".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".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, "yaml_check".freeze]
14
+ s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "charpick".freeze, "classify".freeze, "code_comment".freeze, "code_indexer".freeze, "commit_message".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "irb_client".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".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, "yaml_check".freeze]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/config_file/block_config.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/finder/files.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/irb/irb_server.rb".freeze, "lib/utils/irb/regexp.rb".freeze, "lib/utils/irb/shell.rb".freeze, "lib/utils/irb/shell/wrappers.rb".freeze, "lib/utils/irb/string.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.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xdg.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
16
- s.files = [".contexts/lib.rb".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/code_indexer".freeze, "bin/commit_message".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/irb_client".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".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, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/config_file/block_config.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/finder/files.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/irb/irb_server.rb".freeze, "lib/utils/irb/regexp.rb".freeze, "lib/utils/irb/shell.rb".freeze, "lib/utils/irb/shell/wrappers.rb".freeze, "lib/utils/irb/string.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.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xdg.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
16
+ s.files = [".contexts/lib.rb".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/charpick".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/code_indexer".freeze, "bin/commit_message".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/irb_client".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".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, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/config_file/block_config.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/finder/files.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/irb/irb_server.rb".freeze, "lib/utils/irb/regexp.rb".freeze, "lib/utils/irb/shell.rb".freeze, "lib/utils/irb/shell/wrappers.rb".freeze, "lib/utils/irb/string.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.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xdg.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.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 = "4.0.10".freeze
20
+ s.rubygems_version = "4.0.20".freeze
21
21
  s.summary = "Some useful command line utilities".freeze
22
22
  s.test_files = ["tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze]
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.17.1".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.18.0".freeze])
27
27
  s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
28
28
  s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.51".freeze])
29
29
  s.add_runtime_dependency(%q<term-ansicolor>.freeze, ["~> 1.11".freeze])
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.add_runtime_dependency(%q<mize>.freeze, ["~> 0.6".freeze])
37
37
  s.add_runtime_dependency(%q<amatch>.freeze, ["~> 0.6".freeze])
38
38
  s.add_runtime_dependency(%q<kramdown-ansi>.freeze, [">= 0.4".freeze])
39
- s.add_runtime_dependency(%q<search_ui>.freeze, [">= 0.0.9".freeze])
39
+ s.add_runtime_dependency(%q<search_ui>.freeze, [">= 0.2.0".freeze])
40
40
  s.add_runtime_dependency(%q<all_images>.freeze, [">= 0.12".freeze])
41
41
  s.add_runtime_dependency(%q<starscope>.freeze, [">= 0".freeze])
42
42
  s.add_runtime_dependency(%q<webrick>.freeze, [">= 0".freeze])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.96.0
4
+ version: 0.98.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 2.17.1
18
+ version: 2.18.0
19
19
  type: :development
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 2.17.1
25
+ version: 2.18.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: test-unit
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +197,14 @@ dependencies:
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: 0.0.9
200
+ version: 0.2.0
201
201
  type: :runtime
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - ">="
206
206
  - !ruby/object:Gem::Version
207
- version: 0.0.9
207
+ version: 0.2.0
208
208
  - !ruby/object:Gem::Dependency
209
209
  name: all_images
210
210
  requirement: !ruby/object:Gem::Requirement
@@ -281,6 +281,7 @@ executables:
281
281
  - ascii7
282
282
  - blameline
283
283
  - changes
284
+ - charpick
284
285
  - classify
285
286
  - code_comment
286
287
  - code_indexer
@@ -349,6 +350,7 @@ files:
349
350
  - bin/ascii7
350
351
  - bin/blameline
351
352
  - bin/changes
353
+ - bin/charpick
352
354
  - bin/classify
353
355
  - bin/code_comment
354
356
  - bin/code_indexer
@@ -430,7 +432,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
430
432
  - !ruby/object:Gem::Version
431
433
  version: '0'
432
434
  requirements: []
433
- rubygems_version: 4.0.10
435
+ rubygems_version: 4.0.20
434
436
  specification_version: 4
435
437
  summary: Some useful command line utilities
436
438
  test_files: