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 +4 -4
- data/lib/rails_response_dumper/option_parser.rb +21 -1
- data/lib/rails_response_dumper/runner.rb +22 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 788b942da1a65cd0b19a82d33f23bba37cb4a260319f37f17c558f71d33e44b8
|
4
|
+
data.tar.gz: af367f3c8103532b4ab7f9ccfb9942b458a0b48c8a31d5cec3ce79c4a6515c5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 =
|
16
|
-
|
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
|
-
|
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
|
-
|
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:
|
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-
|
11
|
+
date: 2023-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|