rails-response-dumper 1.1.0 → 3.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 +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: []