utils 0.35.0 → 0.36.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: '07918bacd055f0bbfac96cd115901ce36b656d9658477a07e11565562b73846e'
4
- data.tar.gz: 8016c94eabb23717b14548a2b334a5f2d047808157b803a23980d63a7270847b
3
+ metadata.gz: ba7d9a5d2f90097b79382fce03e1896767030b54cf497a9660ec41fd64ff84b0
4
+ data.tar.gz: d71a031ff72850f73f9ca0d29b42f45583044910a9c87c75a3860d2318d0567e
5
5
  SHA512:
6
- metadata.gz: 1d903b3bf6fd56083203e63930036ed0950dbae533cb7560569c920f4d25ef2267aa12f5e35740f61c9210b9b3df7b94f35050895a0c91b34b02309963b4fac2
7
- data.tar.gz: c50f439ffe1168cda867f5470b39e9a642363861901f9371ace1eec95c45b7d2a6556c82b5d108582927cffec02ef405fa35f0b6f5e7a9f75382e91a8f87d72f
6
+ metadata.gz: 11cb9e1b968778dda0b0267bde2002c4a53e41da829a6411cd26d92aeb9978c804f3949d4dfc422feceaa526d644fbb624cd284a60e4cbde04bc21e6eb82270a
7
+ data.tar.gz: d562c45af8b3f7a099dca7057f54508ecb7ccead617b1fe77debef35e3cb01419137718829c68457128ff5f6ea6e469b00ccb559d9b4758776937ee6d062aebb
data/bin/search CHANGED
@@ -7,6 +7,7 @@ require 'tins/xt'
7
7
  include Tins::GO
8
8
  require 'term/ansicolor'
9
9
  include Term::ANSIColor
10
+ require 'tempfile'
10
11
 
11
12
  def convert_ruby_to_vim_regexp(pattern)
12
13
  regexp = pattern.source.dup
@@ -18,14 +19,14 @@ end
18
19
  def read_line(path)
19
20
  filename, lineno = path.source_location
20
21
  line = File.open(filename) do |file|
21
- file.lazy.each_with_index.select { |l, n| n + 1 == lineno }.first&.first
22
+ file.lazy.each_with_index.select { |l, n| n + 1 == lineno }.first&.first
22
23
  end
23
24
  end
24
25
 
25
26
  def replace_line(path, new_line)
26
27
  filename, lineno = path.source_location
27
- File.secure_write filename do |output|
28
- File.open(filename) do |file|
28
+ Tempfile.open do |output|
29
+ File.open(filename, 'r+') do |file|
29
30
  file.each_with_index do |line, n|
30
31
  if n + 1 == lineno
31
32
  output.write new_line
@@ -33,6 +34,11 @@ def replace_line(path, new_line)
33
34
  output.write line
34
35
  end
35
36
  end
37
+ file.rewind
38
+ output.rewind
39
+ output.each do |line|
40
+ file.write line
41
+ end
36
42
  end
37
43
  end
38
44
  end
@@ -51,7 +57,7 @@ def replace_ask(editor, path, pattern, replace, all)
51
57
  replace_line path, new_line
52
58
  break true
53
59
  else
54
- print "Replace? (#{bold(?y)}/n/e/a) "
60
+ print "Replace? (#{bold(?y)}/n/e/a/q) "
55
61
  case answer = STDIN.gets.chomp
56
62
  when ?y, '', ?a
57
63
  new_line = line.gsub(pattern.matcher, replace)
@@ -59,6 +65,8 @@ def replace_ask(editor, path, pattern, replace, all)
59
65
  break answer == ?a
60
66
  when ?n
61
67
  break false
68
+ when ?q
69
+ throw :quit
62
70
  when ?e
63
71
  editor.edit(path.strip)
64
72
  break false
@@ -78,8 +86,10 @@ def edit_files(pattern, paths, pick: false, replace: nil)
78
86
  when replace
79
87
  editor.wait = true
80
88
  all = false
81
- for path in paths
82
- all |= replace_ask editor, path, pattern, replace, all
89
+ catch :quit do
90
+ for path in paths
91
+ all |= replace_ask editor, path, pattern, replace, all
92
+ end
83
93
  end
84
94
  when pick
85
95
  if paths.size > 1
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.35.0'
3
+ VERSION = '0.36.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.35.0 ruby lib
2
+ # stub: utils 0.36.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.35.0"
6
+ s.version = "0.36.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 = "2023-03-01"
11
+ s.date = "2023-06-09"
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, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze]
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.35.0
4
+ version: 0.36.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: 2023-03-01 00:00:00.000000000 Z
11
+ date: 2023-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar