rails-response-dumper 5.3.0 → 6.0.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: 83121f82eb5299087a5a7f51a1a1950767b0ae34e893f5c48005bb288950f634
4
- data.tar.gz: d42cca1ffad83f7df8ffdda62f2b4d2610d98caa21ef96c2cfa52443a47d8386
3
+ metadata.gz: 788b942da1a65cd0b19a82d33f23bba37cb4a260319f37f17c558f71d33e44b8
4
+ data.tar.gz: af367f3c8103532b4ab7f9ccfb9942b458a0b48c8a31d5cec3ce79c4a6515c5a
5
5
  SHA512:
6
- metadata.gz: 3b4183a48c0ad2d313565a10bfcd995bc6b8325ef1f979771c32958ef79515d73586c1bfdfd7cca1d735abbd185ce0ec8f2031bf0d5e7aac585be1ef4b45b91d
7
- data.tar.gz: cecaddd1391cd0fcbb9560cf251b61769e3ca94a31b45f51d18cd2c4df30e3c73de4fc9b6fac4f0bbb3325df261447e437b35370f43bab0423f709b589a19635
6
+ metadata.gz: 3558c86a4f92d736449a14b5a24074759c686eb98b0ef57386412d45a081c4a184470b2dec61f527e2cb5fa34e9163fb6a0cbc72e2b043b4f05c19d0b328de06
7
+ data.tar.gz: 5998a7c43305baa14faaa4e6591aa3cc1b6fea49c4f567ad3551694011d9c6592b2a35457915790f38a5bb245a78e61f44808a38d832dcb6378986856ef38db3
@@ -4,9 +4,23 @@ require 'optparse'
4
4
 
5
5
  module RailsResponseDumper
6
6
  def self.parse_options!
7
- options = {}
7
+ options = { 'dumps-dir' => Rails.root.join('dumps') }
8
8
 
9
9
  OptionParser.new do |opts|
10
+ opts.banner += ' [glob]'
11
+
12
+ opts.separator ''
13
+ opts.separator 'Filtering:'
14
+ opts.separator 'Run for specific files or globs:'
15
+ opts.separator ' rails-response-dumper path/to/a_dumper.rb'
16
+
17
+ opts.separator ''
18
+ opts.separator 'Options:'
19
+
20
+ opts.on('--dumps-dir PATH', 'Output dumps to this directory.') do |v|
21
+ options['dumps-dir'] = v
22
+ end
23
+
10
24
  opts.on('--fail-fast', 'Abort the run after first failure.') do |v|
11
25
  options[:fail_fast] = v
12
26
  end
@@ -18,8 +32,14 @@ module RailsResponseDumper
18
32
  opts.on('--order TYPE', 'Run dumps by the specified order type.') do |v|
19
33
  options[:order] = v
20
34
  end
35
+
36
+ opts.on('--exclude-response-headers', 'Do not output response headers.') do |v|
37
+ options[:exclude_response_headers] = v
38
+ end
21
39
  end.parse!
22
40
 
41
+ options[:filenames] = ARGV
42
+
23
43
  options.freeze
24
44
  end
25
45
  end
@@ -12,15 +12,29 @@ module RailsResponseDumper
12
12
  end
13
13
 
14
14
  def run_dumps
15
- dumps_dir = Rails.root.join('dumps')
16
- FileUtils.rm_rf dumps_dir
15
+ dumps_dir = options['dumps-dir']
16
+
17
+ if options[:filenames].present?
18
+ globs = options[:filenames]
19
+ else
20
+ globs = ['dumpers/**/*.rb']
21
+ FileUtils.rm_rf dumps_dir
22
+ end
23
+
17
24
  FileUtils.mkdir_p dumps_dir
18
25
 
19
- Dir[Rails.root.join('dumpers/**/*.rb')].each { |f| require f }
26
+ globs.each do |glob|
27
+ Dir[Rails.root.join(glob)].each { |f| require f }
28
+ end
20
29
 
21
30
  errors = []
22
31
 
23
32
  dumper_blocks = RailsResponseDumper::Defined.dumpers.flat_map do |defined|
33
+ if options[:filenames].present?
34
+ # clear previous dumps for that file in case removed from updated dump file
35
+ FileUtils.rm_rf "#{dumps_dir}/#{defined.name.underscore}/"
36
+ end
37
+
24
38
  defined.blocks.map do |dump_block|
25
39
  [defined, dump_block]
26
40
  end
@@ -81,6 +95,7 @@ module RailsResponseDumper
81
95
  end
82
96
 
83
97
  request = response.request
98
+
84
99
  dump = {
85
100
  request: {
86
101
  method: request.method,
@@ -89,11 +104,14 @@ module RailsResponseDumper
89
104
  },
90
105
  response: {
91
106
  status: response.status,
92
- status_text: response.status_message,
107
+ statusText: response.status_message,
93
108
  headers: response.headers,
94
109
  body: response.body
95
110
  }
96
111
  }
112
+
113
+ dump[:response].delete(:headers) if options[:exclude_response_headers]
114
+
97
115
  File.write("#{dumper_dir}/#{index}.json", JSON.pretty_generate(dump))
98
116
  end
99
117
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-response-dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pioneer Valley Books
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-07 00:00:00.000000000 Z
11
+ date: 2023-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails