rexe 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +7 -7
  4. data/exe/rexe +30 -34
  5. data/rexe.gemspec +10 -2
  6. metadata +10 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab6cd585e21edba16a3a5c8a8891e476ec637439d7ad138f4bd3100eb7612dd9
4
- data.tar.gz: a5726d9c8796bbe3cba5ce72d29fc47baf1a424a88ee9ee85ddc437e07a659ec
3
+ metadata.gz: 7d4ad1a24022659314b09d706db797d17702d6b879b4b52d0d4068b7fef4ef9c
4
+ data.tar.gz: 04b6759f33142d6e738bd12ce0bad997385f77c02c7e0537ea5f3c609df8ef7b
5
5
  SHA512:
6
- metadata.gz: 4ed213f525f937ed0c5a34d0731e4e4373a47d1aa185fa98a6478f73946009afbd91fc50241b6e2ca2aadd377ee1b6d1d812cf3c0f79a7e19d6219d5856aa6ce
7
- data.tar.gz: 33772f5dbe83863c18405950cfd84b128a36a8733f7a459221f74cfce1ed7d076bd8b3f815f221b05efc0386ad2b59c4a65e8e3842f412cebfeb91516fa876b9
6
+ metadata.gz: 7a51a900c81e65878e13a795708c35e57d41f7226300932bea17105707aa03f9b5246e386ecdb7e3d437361614ccbdbaab63b7fb1b4c6bc59ee28bbd33dcd18a
7
+ data.tar.gz: cc4acaa0817872e3e9ec7960246c721152c7311708abd8bed7bf9e206332c8c6bf579d876c0240d2a98a1780eaade154fd7412b3c3e5fa28d5f8383308ea0323
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## rexe -- Ruby Command Line Executor/Filter
2
2
 
3
+ ### 1.7.0
4
+
5
+ * Replace amazing_print dependency with awesome_print.
6
+ * Effectively disable `try` method, i.e. print stack trace on errors.
7
+ * In `try` method, rescue StandardError instead of Exception.
8
+
9
+
3
10
  ### 1.6.0
4
11
 
5
12
  * Replace calls to `exists?`, which has been removed, with `exist?`.
data/README.md CHANGED
@@ -73,7 +73,7 @@ Rexe is at https://github.com/keithrbennett/rexe and can be installed with `gem
73
73
  Here is rexe's help text as of the time of this writing:
74
74
 
75
75
  ```
76
- rexe -- Ruby Command Line Executor/Filter -- v1.6.0 -- https://github.com/keithrbennett/rexe
76
+ rexe -- Ruby Command Line Executor/Filter -- v1.7.0 -- https://github.com/keithrbennett/rexe
77
77
 
78
78
  Executes Ruby code on the command line,
79
79
  optionally automating management of standard input and standard output,
@@ -135,7 +135,7 @@ before processing the input.
135
135
 
136
136
  If there is a REXE_OPTIONS environment variable, its content will be prepended
137
137
  to the command line so that you can specify options implicitly
138
- (e.g. `export REXE_OPTIONS="-r amazing_print,yaml"`)
138
+ (e.g. `export REXE_OPTIONS="-r awesome_print,yaml"`)
139
139
  ```
140
140
 
141
141
  ### Simplifying the Rexe Invocation
@@ -239,11 +239,11 @@ $ echo $EUR_RATES_JSON | rexe -gy -ij -mb -oa -n self
239
239
  :input_format: :json
240
240
  :input_mode: :one_big_string
241
241
  :loads: []
242
- :output_format: :amazing_print
243
- :output_format_tty: :amazing_print
244
- :output_format_block: :amazing_print
242
+ :output_format: :awesome_print
243
+ :output_format_tty: :awesome_print
244
+ :output_format_block: :awesome_print
245
245
  :requires:
246
- - amazing_print
246
+ - awesome_print
247
247
  - json
248
248
  - yaml
249
249
  :log_format: :yaml
@@ -741,7 +741,7 @@ For consistency with the `ruby` interpreter, rexe supports requires with the `-r
741
741
 
742
742
  ```bash
743
743
  vvvvvvvvvvvvvvvvvv
744
- $ echo $EUR_RATES_JSON | rexe -r json,amazing_print 'ap JSON.parse(STDIN.read)'
744
+ $ echo $EUR_RATES_JSON | rexe -r json,awesome_print 'ap JSON.parse(STDIN.read)'
745
745
  ^^^^^^^^^^^^^^^^^^
746
746
  ```
747
747
 
data/exe/rexe CHANGED
@@ -15,24 +15,26 @@ require 'shellwords'
15
15
 
16
16
  class Rexe
17
17
 
18
- VERSION = '1.6.0'
18
+ VERSION = '1.7.0'
19
19
 
20
20
  PROJECT_URL = 'https://github.com/keithrbennett/rexe'
21
21
 
22
22
 
23
23
  module Helpers
24
24
 
25
- # Try executing code. If error raised, print message (but not stack trace) & exit -1.
25
+ # Originally the entire run was wrapped in this rescue to make error output more concise.
26
+ # However, I am concerned that hiding the stack trace will make it harder to debug,
27
+ # and be worse than the ugliness of showing it when it is not needed. So, I am commenting
28
+ # out the rescue for now, and will see how it goes. If you have any opinions on this,
29
+ # please let me know at https://github.com/keithrbennett/rexe/issues/5 .
30
+ #
31
+ # (disabled) Try executing code. If error raised, print message (but not stack trace) & exit -1.
26
32
  def try
27
- begin
28
- yield
29
- rescue Exception => e
30
- unless e.class == SystemExit
31
- $stderr.puts("rexe: #{e}")
32
- $stderr.puts("Use the -h option to get help.")
33
- exit(-1)
34
- end
35
- end
33
+ yield
34
+ # rescue StandardError => e
35
+ # $stderr.puts("rexe ERROR: #{e}")
36
+ # $stderr.puts('Use the -h option to get help.')
37
+ # exit(-1)
36
38
  end
37
39
  end
38
40
 
@@ -71,9 +73,6 @@ class Rexe
71
73
  end
72
74
 
73
75
 
74
-
75
-
76
-
77
76
  class Lookups
78
77
  def input_modes
79
78
  @input_modes ||= {
@@ -107,7 +106,7 @@ class Rexe
107
106
 
108
107
  def output_formats
109
108
  @output_formats ||= {
110
- 'a' => :amazing_print,
109
+ 'a' => :awesome_print,
111
110
  'i' => :inspect,
112
111
  'j' => :json,
113
112
  'J' => :pretty_json,
@@ -123,7 +122,7 @@ class Rexe
123
122
 
124
123
  def formatters
125
124
  @formatters ||= {
126
- amazing_print: ->(obj) { obj.ai + "\n" },
125
+ awesome_print: ->(obj) { obj.ai + "\n" },
127
126
  inspect: ->(obj) { obj.inspect + "\n" },
128
127
  json: ->(obj) { obj.to_json },
129
128
  marshal: ->(obj) { Marshal.dump(obj) },
@@ -141,7 +140,7 @@ class Rexe
141
140
  @format_requires ||= {
142
141
  json: 'json',
143
142
  pretty_json: 'json',
144
- amazing_print: 'amazing_print',
143
+ awesome_print: 'awesome_print',
145
144
  pretty_print: 'pp',
146
145
  yaml: 'yaml'
147
146
  }
@@ -149,7 +148,6 @@ class Rexe
149
148
  end
150
149
 
151
150
 
152
-
153
151
  class CommandLineParser
154
152
 
155
153
  include Helpers
@@ -245,7 +243,7 @@ class Rexe
245
243
 
246
244
  If there is a REXE_OPTIONS environment variable, its content will be prepended
247
245
  to the command line so that you can specify options implicitly
248
- (e.g. `export REXE_OPTIONS="-r amazing_print,yaml"`)
246
+ (e.g. `export REXE_OPTIONS="-r awesome_print,yaml"`)
249
247
 
250
248
  HEREDOC
251
249
 
@@ -261,7 +259,7 @@ class Rexe
261
259
  extension = File.extname(filespec).downcase
262
260
  if extension == '.json'
263
261
  :json
264
- elsif extension == '.yml' || extension == '.yaml'
262
+ elsif %w{.yml .yaml}.include?(extension)
265
263
  :yaml
266
264
  else
267
265
  :none
@@ -293,7 +291,7 @@ class Rexe
293
291
  input_format_specified = false
294
292
  output_format_specified = false
295
293
 
296
- report_unspecified_options = ->() do
294
+ report_unspecified_options = -> do
297
295
  messages = []
298
296
 
299
297
  unless input_mode_specified
@@ -307,14 +305,14 @@ class Rexe
307
305
  end
308
306
 
309
307
  if messages.any?
310
- $stderr.puts("#{messages.join("\n")}")
308
+ $stderr.puts(messages.join("\n"))
311
309
  $stderr.puts("See help (run with -h) for more information.\n\n")
312
310
  end
313
311
  end
314
312
 
315
313
  OptionParser.new do |parser|
316
314
 
317
- parser.on('-c', '--clear_options', "Clear all previous command line options") do |v|
315
+ parser.on('-c', '--clear_options', 'Clear all previous command line options') do |v|
318
316
  options.clear
319
317
  end
320
318
 
@@ -339,7 +337,7 @@ class Rexe
339
337
  end
340
338
  end
341
339
 
342
- parser.on("-h", "--help", "Show help") do |_help_requested|
340
+ parser.on("-h", "--help", 'Show help') do |_help_requested|
343
341
  puts help_text
344
342
  exit
345
343
  end
@@ -537,17 +535,15 @@ class Rexe
537
535
  # Bypasses Bundler's restriction on loading gems
538
536
  # (see https://stackoverflow.com/questions/55144094/bundler-doesnt-permit-using-gems-in-project-home-directory)
539
537
  private def require!(the_require)
540
- begin
538
+ require the_require
539
+ rescue LoadError => error
540
+ gem_path = `gem which #{the_require}`
541
+ if gem_path.chomp.strip.empty?
542
+ raise error # re-raise the error, can't fix it
543
+ else
544
+ load_dir = File.dirname(gem_path)
545
+ $LOAD_PATH += load_dir
541
546
  require the_require
542
- rescue LoadError => error
543
- gem_path = `gem which #{the_require}`
544
- if gem_path.chomp.strip.empty?
545
- raise error # re-raise the error, can't fix it
546
- else
547
- load_dir = File.dirname(gem_path)
548
- $LOAD_PATH += load_dir
549
- require the_require
550
- end
551
547
  end
552
548
  end
553
549
 
data/rexe.gemspec CHANGED
@@ -3,6 +3,9 @@ Gem::Specification.new do |spec|
3
3
  spec.name = "rexe"
4
4
 
5
5
  spec.version = -> do
6
+ # This is a bit of a kludge. If there is a commented out VERSION line preceding the active line,
7
+ # this will read the commented line.
8
+ # TODO: Ignore comment lines.
6
9
  rexe_file = File.join(File.dirname(__FILE__), 'exe', 'rexe')
7
10
  version_line = File.readlines(rexe_file).grep(/\s*VERSION\s*=\s*'/).first.chomp
8
11
  version_line.match(/'(.+)'/)[0].gsub("'", '')
@@ -38,11 +41,16 @@ Gem::Specification.new do |spec|
38
41
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
39
42
  spec.require_paths = ["lib"]
40
43
 
41
- spec.add_dependency "amazing_print"
44
+ spec.add_dependency "awesome_print"
42
45
 
43
46
  spec.add_development_dependency "bundler", "~> 2.0"
44
47
  spec.add_development_dependency "os"
45
48
  spec.add_development_dependency "rake", "~> 12.3"
46
- spec.add_development_dependency "rspec", "~> 3.0"
49
+ spec.add_development_dependency "rspec", "~> 3.12"
47
50
 
51
+ # Remove this message (added November 2023) later (maybe July 2024).
52
+ spec.post_install_message = <<~MESSAGE
53
+ Starting with v1.7.0, awesome_print is now used instead of amazing_print
54
+ for fancy human readable output.
55
+ MESSAGE
48
56
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rexe
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Bennett
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-11 00:00:00.000000000 Z
11
+ date: 2023-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: amazing_print
14
+ name: awesome_print
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '3.12'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '3.12'
83
83
  description: Ruby Command Line Executor
84
84
  email:
85
85
  - keithrbennett@gmail.com
@@ -110,7 +110,8 @@ metadata:
110
110
  homepage_uri: https://github.com/keithrbennett/rexe
111
111
  source_code_uri: https://github.com/keithrbennett/rexe
112
112
  changelog_uri: https://github.com/keithrbennett/rexe/blob/master/README.md
113
- post_install_message:
113
+ post_install_message: "Starting with v1.7.0, awesome_print is now used instead of
114
+ amazing_print \nfor fancy human readable output.\n"
114
115
  rdoc_options: []
115
116
  require_paths:
116
117
  - lib
@@ -125,8 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  - !ruby/object:Gem::Version
126
127
  version: '0'
127
128
  requirements: []
128
- rubygems_version: 3.4.1
129
- signing_key:
129
+ rubygems_version: 3.4.22
130
+ signing_key:
130
131
  specification_version: 4
131
132
  summary: Ruby Command Line Executor
132
133
  test_files: []