utils 0.21.2 → 0.22.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: afb36522c028e7038dbc5fb7adfc0654a1943d8c8d57ae1e39ce5b4314dedc8c
4
- data.tar.gz: 652cd7c050b83f151af992e665751ea2fb871614a33744afe89388ebb2b3ab46
3
+ metadata.gz: 582ba1bbb090afdc381a9ce6b7937c5c18292f890102813acc0b10407cf3a643
4
+ data.tar.gz: 6746c570c1a9d251da79d3baf2197d7cb13f0cd44f5e1b72562781136ba38ca2
5
5
  SHA512:
6
- metadata.gz: 07eca4ba5ab9b9925a5fbbb7a84b5a72d909e0f000f88c1e4ef2f6ec0b69cc004321fd210a88bdd71b120379d7a150ec0490b4e171e9c56fa2be584131aa002e
7
- data.tar.gz: aded8038db38b9bb0d600338a3cd6b46f8b763eebca818b98b6b7edd582497a3c50af905b721bcdf563556267a2418918d7681b8da64d4491a4b3b9de129b846
6
+ metadata.gz: 386432a84a0321caa92c764ff078279b951dcd2f4961795b503281bda54a4e6cf82f5a3056fc54c7b1c37c1b20759a5b95eb9f1c59cfe93b0658190b466bfe01
7
+ data.tar.gz: c510a9dc1d66a6b840d6741e7cda372c9f47f3ffdbe720a23fd77580442bba82719ac32744cb84f4da22fa12ece8cbbafbe4477038fdfca40291ac0b0d737ced
data/Rakefile CHANGED
@@ -20,7 +20,8 @@ GemHadar do
20
20
  dependency 'term-ansicolor', '~>1.3'
21
21
  dependency 'pstree', '~>0.3'
22
22
  dependency 'infobar'
23
- dependency 'mize'
23
+ dependency 'mize'
24
+ dependency 'search_ui'
24
25
 
25
26
  install_library do
26
27
  libdir = CONFIG["sitelibdir"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.21.2
1
+ 0.22.0
@@ -4,6 +4,8 @@ require 'utils'
4
4
  include Utils
5
5
  require 'tins/xt'
6
6
  include Tins::GO
7
+ require 'search_ui'
8
+ include SearchUI
7
9
 
8
10
  def edit_files(*paths, pick: false, wait: true)
9
11
  editor = Utils::Editor.new
@@ -83,22 +85,28 @@ when args[?s]
83
85
  pattern = pattern.dup
84
86
  args[?n] = Term::ANSIColor.terminal_lines - 1
85
87
  path = nil
86
- found = Utils::SearchUI.new(
87
- query: -> answer, selector {
88
+ found = Search.new(
89
+ match: -> answer {
88
90
  pattern.replace answer
89
91
  f = finder.()
90
- f.search.output.each_with_index.map { |l, i| (i == selector ? '> ' : ' ') + l }.join(?\n)
92
+ matches = f.search.output
93
+ matches.first(Tins::Terminal.lines - 1)
91
94
  },
92
- found: -> answer, selector {
93
- f and path = f.paths[selector]
95
+ query: -> _answer, matches, selector {
96
+ matches.each_with_index.map { |l, i| (i == selector ? '> ' : ' ') + l }.join(?\n)
97
+ },
98
+ found: -> _answer, matches, selector {
99
+ if f
100
+ path = f.paths[selector]
101
+ end
94
102
  },
95
103
  output: STDERR
96
104
  ).start
97
105
  if found
98
106
  if args[?e]
99
- edit_files path, wait: false
107
+ edit_files found, wait: false
100
108
  else
101
- found and puts path
109
+ found and puts found
102
110
  end
103
111
  exit 0
104
112
  else
@@ -10,7 +10,6 @@ module Utils
10
10
  require 'utils/probe_server'
11
11
  require 'utils/ssh_tunnel_specification'
12
12
  require 'utils/line_blamer'
13
- require 'utils/search_ui'
14
13
  begin
15
14
  require 'utils/line_formatter'
16
15
  rescue LoadError
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.21.2'
3
+ VERSION = '0.22.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:
@@ -1,19 +1,19 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.21.2 ruby lib
2
+ # stub: utils 0.22.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.21.2"
6
+ s.version = "0.22.0"
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 = "2020-02-06"
11
+ s.date = "2020-02-11"
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 = ["discover".freeze, "classify".freeze, "sedit".freeze, "irb_connect".freeze, "ascii7".freeze, "path".freeze, "enum".freeze, "unquarantine_apps".freeze, "ssh-tunnel".freeze, "xmp".freeze, "brakeman2err".freeze, "search".freeze, "chroot-exec".freeze, "edit".freeze, "tmproc".freeze, "json_check".freeze, "edit_wait".freeze, "errf".freeze, "untest".freeze, "blameline".freeze, "remote_copy".freeze, "git-empty".freeze, "create_cstags".freeze, "vacuum_firefox_sqlite".freeze, "same_files".freeze, "chroot-libs".freeze, "git-versions".freeze, "strip_spaces".freeze, "number_files".freeze, "rssr".freeze, "serve".freeze, "vcf2alias".freeze, "on_change".freeze, "utils-utilsrc".freeze, "myex".freeze, "long_lines".freeze, "dialog-pick".freeze, "probe".freeze, "create_tags".freeze]
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/irb/service.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/search_ui.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 = [".gitignore".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/brakeman2err".freeze, "bin/chroot-exec".freeze, "bin/chroot-libs".freeze, "bin/classify".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/dialog-pick".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/errf".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/irb_connect".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/remote_copy".freeze, "bin/rssr".freeze, "bin/same_files".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/tmproc".freeze, "bin/unquarantine_apps".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vacuum_firefox_sqlite".freeze, "bin/vcf2alias".freeze, "bin/xmp".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/irb/service.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/search_ui.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]
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/irb/service.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 = [".gitignore".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/brakeman2err".freeze, "bin/chroot-exec".freeze, "bin/chroot-libs".freeze, "bin/classify".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/dialog-pick".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/errf".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/irb_connect".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/remote_copy".freeze, "bin/rssr".freeze, "bin/same_files".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/tmproc".freeze, "bin/unquarantine_apps".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vacuum_firefox_sqlite".freeze, "bin/vcf2alias".freeze, "bin/xmp".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/irb/service.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.rdoc_options = ["--title".freeze, "Utils - Some useful command line utilities".freeze, "--main".freeze, "README.md".freeze]
19
19
  s.rubygems_version = "3.1.2".freeze
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_runtime_dependency(%q<pstree>.freeze, ["~> 0.3"])
31
31
  s.add_runtime_dependency(%q<infobar>.freeze, [">= 0"])
32
32
  s.add_runtime_dependency(%q<mize>.freeze, [">= 0"])
33
+ s.add_runtime_dependency(%q<search_ui>.freeze, [">= 0"])
33
34
  else
34
35
  s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
35
36
  s.add_dependency(%q<tins>.freeze, ["~> 1.14"])
@@ -37,5 +38,6 @@ Gem::Specification.new do |s|
37
38
  s.add_dependency(%q<pstree>.freeze, ["~> 0.3"])
38
39
  s.add_dependency(%q<infobar>.freeze, [">= 0"])
39
40
  s.add_dependency(%q<mize>.freeze, [">= 0"])
41
+ s.add_dependency(%q<search_ui>.freeze, [">= 0"])
40
42
  end
41
43
  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.21.2
4
+ version: 0.22.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: 2020-02-06 00:00:00.000000000 Z
11
+ date: 2020-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: search_ui
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: This ruby gem provides some useful command line utilities
98
112
  email: flori@ping.de
99
113
  executables:
@@ -152,7 +166,6 @@ extra_rdoc_files:
152
166
  - lib/utils/md5.rb
153
167
  - lib/utils/patterns.rb
154
168
  - lib/utils/probe_server.rb
155
- - lib/utils/search_ui.rb
156
169
  - lib/utils/ssh_tunnel_specification.rb
157
170
  - lib/utils/version.rb
158
171
  - lib/utils/xt/source_location_extension.rb
@@ -215,7 +228,6 @@ files:
215
228
  - lib/utils/md5.rb
216
229
  - lib/utils/patterns.rb
217
230
  - lib/utils/probe_server.rb
218
- - lib/utils/search_ui.rb
219
231
  - lib/utils/ssh_tunnel_specification.rb
220
232
  - lib/utils/version.rb
221
233
  - lib/utils/xt/source_location_extension.rb
@@ -1,75 +0,0 @@
1
- require 'term/ansicolor'
2
-
3
- class Utils::SearchUI
4
- include Term::ANSIColor
5
-
6
- def initialize(query:, found:, output: STDOUT, prompt: 'Search? %s')
7
- @selector = 0
8
- @query = query
9
- @found = found
10
- @output = output
11
- @prompt = prompt
12
- @answer = ''
13
- end
14
-
15
- def start
16
- @output.print clear_screen, move_home, reset
17
- loop do
18
- @output.print move_home { @prompt % @answer }
19
- case getc
20
- when true
21
- @output.print clear_screen, move_home, reset
22
- if result = @found.(@answer, @selector)
23
- return result
24
- else
25
- return nil
26
- end
27
- when false
28
- return nil
29
- end
30
- result = @query.(@answer, @selector)
31
- @output.print clear_screen
32
- unless @answer.empty?
33
- @output.print move_home { ?\n + result }
34
- end
35
- end
36
- end
37
-
38
- private
39
-
40
- def getc
41
- system 'stty raw -echo'
42
- c = STDIN.getc
43
- system 'stty cooked echo'
44
- case c
45
- when "\x03"
46
- false
47
- when "\e"
48
- STDIN.getc == ?[ or return nil
49
- STDIN.getc =~ /\A([AB])\z/ or return nil
50
- if $1 == ?A
51
- @selector -= 1
52
- else
53
- @selector += 1
54
- end
55
- @selector = [ @selector, 0 ].max
56
- nil
57
- when ?\r
58
- true
59
- when "\x7f"
60
- @selector = 0
61
- @answer.chop!
62
- nil
63
- when "\v"
64
- @selector = 0
65
- @answer.clear
66
- nil
67
- when /\A[\x00-\x1f]\z/
68
- nil
69
- else
70
- @selector = 0
71
- @answer << c
72
- nil
73
- end
74
- end
75
- end