rails-response-dumper 5.3.0 → 6.0.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: 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