utils 0.21.2 → 0.22.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: 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