rails-response-dumper 1.1.0 → 3.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 +5 -81
  3. metadata +43 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5339910eb52b9f90bc3f77b61687200df572599794844dbe24418d8220d9b6a
4
- data.tar.gz: 4b523295d0891309b53f530166f7acc92abaa01859631d16f75a71c476957503
3
+ metadata.gz: e614c816d07245148905af373aea3ffcd3eb0ea4f36b2ae3c045833cca28b25f
4
+ data.tar.gz: b1443b1b9222b316137dc5f38318a8f67b9e4788dff16d4b6bc5149521746e60
5
5
  SHA512:
6
- metadata.gz: ee6abc1d4b910d7fd6a7c90d041a70e606464f0eacf7b43f2c8b8ec14535f5487c7a0585cd3a343915a01497cd3e007f9bc32a523335ad8aa4b74e99477a7e7e
7
- data.tar.gz: 85db63aae0b0a5337bdbb6024ef1f7376de8121501512f69af9e301a9e1a65309ca476a3cf308c8ee18343369b9134316210f69880d8084c94078cbaad8daaab
6
+ metadata.gz: 9bedc8a4c060064f0f4c9c5687312e19cb8d52ec4c47332a643371d8baefd047bc02a0878e54d5423e48b5e7fecfa3312d4689643bea5740944d9589cf86a534
7
+ data.tar.gz: 5dc5f5ee9d8247c84a7278497f53ffe3e54e40de9b2edf36f620a6623b1d8b5f42301d5d6afaee3c44cb925376a9ddae3a82dc94fc360141d4fe65fe043b5714
@@ -1,88 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'fileutils'
5
- require 'mime/types'
6
-
7
4
  ENV['RAILS_ENV'] ||= 'test'
8
- require "#{Dir.pwd}/config/environment"
9
-
10
- class ResponseDumper
11
- include ActionDispatch::Integration::Runner
12
-
13
- attr_reader :expected_status_code
14
-
15
- def self.inherited(subclass)
16
- super
17
- dumpers << subclass
18
- end
19
-
20
- def self.dumpers
21
- @dumpers ||= []
22
- end
23
-
24
- def self.reset_models(*models)
25
- @reset_models ||= []
26
- @reset_models += models
27
- end
28
-
29
- def self.reset_models!
30
- reset_models.each do |model|
31
- model.connection.exec_query "TRUNCATE #{model.quoted_table_name} RESTART IDENTITY CASCADE"
32
- end
33
- end
34
-
35
- # Delegates to `Rails.application`.
36
- def app
37
- Rails.application
38
- end
39
-
40
- def expect_status_code!(status_code)
41
- @expected_status_code = Rack::Utils::SYMBOL_TO_STATUS_CODE[status_code]
42
- end
43
- end
44
-
45
- def run_dumps
46
- dumps_dir = Rails.root.join('dumps')
47
- FileUtils.rm_rf dumps_dir
48
- FileUtils.mkdir_p dumps_dir
49
-
50
- Dir[Rails.root.join('dumpers/**/*.rb')].each { |f| require f }
51
-
52
- 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
- klass.instance_methods.each do |method|
58
- next unless method.start_with?('dump_')
59
-
60
- klass.reset_models!
61
-
62
- dumper = klass.new
63
- ActiveRecord::Base.transaction do
64
- dumper.expect_status_code!(:ok)
65
- dumper.send(method)
66
- raise ActiveRecord::Rollback
67
- end
68
-
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
76
- 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
- end
82
- end
83
- end
5
+ require 'rails_response_dumper'
84
6
 
85
7
  # Prevent database truncation if the environment is production.
86
8
  abort 'The Rails environment is running in production mode!' if Rails.env.production?
87
- ActiveRecord::Migration.maintain_test_schema!
88
- run_dumps
9
+ ActiveRecord::Migration.maintain_test_schema! if defined?(ActiveRecord::Base)
10
+
11
+ runner = RailsResponseDumper::Runner.new
12
+ runner.run_dumps
metadata CHANGED
@@ -1,34 +1,68 @@
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: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pioneer Valley Books
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2022-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: mime-types
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.1'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '6.1'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '8'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
25
42
  - !ruby/object:Gem::Version
26
43
  version: '6.1'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '8'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-mocks
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
27
61
  description: |
28
62
  Rails Response Dumper is a library and command line tool to dump HTTP
29
63
  responses from a Rails application to the file system. These responses can
30
64
  then be consumed by other tools for testing and verification purposes.
31
- email:
65
+ email:
32
66
  executables:
33
67
  - rails-response-dumper
34
68
  extensions: []
@@ -40,7 +74,7 @@ licenses:
40
74
  - MIT
41
75
  metadata:
42
76
  rubygems_mfa_required: 'true'
43
- post_install_message:
77
+ post_install_message:
44
78
  rdoc_options: []
45
79
  require_paths:
46
80
  - lib
@@ -55,8 +89,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
89
  - !ruby/object:Gem::Version
56
90
  version: '0'
57
91
  requirements: []
58
- rubygems_version: 3.2.22
59
- signing_key:
92
+ rubygems_version: 3.3.7
93
+ signing_key:
60
94
  specification_version: 4
61
95
  summary: Dump HTTP responses from a Rails application to the file system
62
96
  test_files: []