rails-response-dumper 1.1.0 → 2.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.
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