rails-response-dumper 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rails-response-dumper +29 -15
  3. metadata +10 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5339910eb52b9f90bc3f77b61687200df572599794844dbe24418d8220d9b6a
4
- data.tar.gz: 4b523295d0891309b53f530166f7acc92abaa01859631d16f75a71c476957503
3
+ metadata.gz: 1f3a97f78890f8b28c7d89704adeb5ff8239c1bddad4dc0aabc50b443dcc075f
4
+ data.tar.gz: 6531326b53a3f906ee6bb104e1096404fe9e9213d4bbcfbcc06df34bcc6e1edf
5
5
  SHA512:
6
- metadata.gz: ee6abc1d4b910d7fd6a7c90d041a70e606464f0eacf7b43f2c8b8ec14535f5487c7a0585cd3a343915a01497cd3e007f9bc32a523335ad8aa4b74e99477a7e7e
7
- data.tar.gz: 85db63aae0b0a5337bdbb6024ef1f7376de8121501512f69af9e301a9e1a65309ca476a3cf308c8ee18343369b9134316210f69880d8084c94078cbaad8daaab
6
+ metadata.gz: e6f6ba4d8eafe2efad495fa2f4ffc1e36e3d735fd6ac96cce293bcc696fc0d5d0cc2a5b989bd6b3ff4ad66f35a19ea178e4b814e0da1e88ba457a0d33d6ee745
7
+ data.tar.gz: c0119049c2eaf7b47cf2d0b43450f0a720885fefca895a849d24aba8d855d3bdddf1e09a041a4a615cf1a1e2fdb17ba6babfd94142f3d4c574794339bf62d716
@@ -40,6 +40,20 @@ class ResponseDumper
40
40
  def expect_status_code!(status_code)
41
41
  @expected_status_code = Rack::Utils::SYMBOL_TO_STATUS_CODE[status_code]
42
42
  end
43
+
44
+ def responses
45
+ @responses ||= []
46
+ end
47
+
48
+ [:get, :post, :patch, :put, :head, :delete].each do |method|
49
+ module_eval <<~RUBY, __FILE__, __LINE__ + 1
50
+ def #{method}(...)
51
+ result = super
52
+ self.responses << response
53
+ result
54
+ end
55
+ RUBY
56
+ end
43
57
  end
44
58
 
45
59
  def run_dumps
@@ -50,10 +64,6 @@ def run_dumps
50
64
  Dir[Rails.root.join('dumpers/**/*.rb')].each { |f| require f }
51
65
 
52
66
  ResponseDumper.dumpers.each do |klass|
53
- klass_path = klass.name.underscore
54
- dumper_dir = "#{dumps_dir}/#{klass_path}"
55
- FileUtils.mkdir_p dumper_dir
56
-
57
67
  klass.instance_methods.each do |method|
58
68
  next unless method.start_with?('dump_')
59
69
 
@@ -66,18 +76,22 @@ def run_dumps
66
76
  raise ActiveRecord::Rollback
67
77
  end
68
78
 
69
- response = dumper.response
70
-
71
- unless response.status == dumper.expected_status_code
72
- raise <<~ERROR.squish
73
- Dumped response has unexpected status code #{response.status} #{response.status_message}
74
- (expected #{dumper.expected_status_code})
75
- ERROR
79
+ klass_path = klass.name.underscore
80
+ dumper_dir = "#{dumps_dir}/#{klass_path}/#{method}"
81
+ FileUtils.mkdir_p dumper_dir
82
+
83
+ dumper.responses.each_with_index do |response, index|
84
+ unless response.status == dumper.expected_status_code
85
+ raise <<~ERROR.squish
86
+ Dumped response has unexpected status code #{response.status} #{response.status_message}
87
+ (expected #{dumper.expected_status_code})
88
+ ERROR
89
+ end
90
+
91
+ mime = response.content_type.split(/ *; */).first
92
+ extension = MIME::Types[mime].first.preferred_extension
93
+ File.write("#{dumper_dir}/#{index}.#{extension}", response.body)
76
94
  end
77
-
78
- mime = response.content_type.split(/ *; */).first
79
- extension = MIME::Types[mime].first.preferred_extension
80
- File.write("#{dumper_dir}/#{method}.#{extension}", response.body)
81
95
  end
82
96
  end
83
97
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-response-dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.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: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '6.1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '6.1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
27
33
  description: |
28
34
  Rails Response Dumper is a library and command line tool to dump HTTP
29
35
  responses from a Rails application to the file system. These responses can