capybara-screenshot 1.0.12 → 1.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0fb2ac718fb87183d57ce6b852dcd9a7f21d908d
4
- data.tar.gz: 71177ec4576776a6ed0368cecfbb335e52e78457
3
+ metadata.gz: a2c4277a621182718153bba9b9bae60234ddfd17
4
+ data.tar.gz: 6af401d8ae56c2849916c0145f0f0ce928cc92ac
5
5
  SHA512:
6
- metadata.gz: 78fcfead269c5570bfa3309d2263ca664359aa8ede1ce21e3a61af8bcb2ca9ca4f3b488b0bbc02cfc4da75ae6b35d0132977cf1e069ef120d3e6b651476b2a6c
7
- data.tar.gz: 883369b31dc3b1e0ae3e1aa477892638f5adb745e9a53ff4ea0a49f8dc2b5a1782bbe59373afbe79063ed003e452dcd5eae61119ff5a7a94b97bf84614035b1c
6
+ metadata.gz: 0696563bcf86da3827f2d8392f2555c56e2f830b0ff6c76bad72d5ac2c1b8ddb37730fee26c51924dbd0f4edc4cf8054949adac7506bf01b45cd955fc200c676
7
+ data.tar.gz: 55ebe3341f404a7c57d5265ca6478127e3b3b4f277a0f2d130f87d5724b0d38d6d441fed4488ab13d0194826432ad0491f6a52b754dc19e578f6f33f61be1a83
@@ -1,3 +1,8 @@
1
+ 23 May 2016 - 1.0.12 -> 1.0.13
2
+
3
+ * Fixes [mkmf bug 162](https://github.com/mattheworiordan/capybara-screenshot/issues/162) and [mkmf bug 174](https://github.com/mattheworiordan/capybara-screenshot/issues/174)
4
+ * Fix for `Capybara.save_path` method existence assumption
5
+
1
6
  29 March 2016 - 1.0.11 -> 1.0.12
2
7
 
3
8
  * [Aruba upgrade - passing CI](https://github.com/mattheworiordan/capybara-screenshot/pull/156)
data/README.md CHANGED
@@ -174,6 +174,31 @@ Capybara.save_and_open_page_path = "/file/path"
174
174
  ```
175
175
 
176
176
 
177
+ Uploading screenshots to S3
178
+ --------------------------
179
+ You can configure capybara-screenshot to automatically save your screenshots to an AWS S3 bucket.
180
+
181
+ First, install the `aws-sdk` gem or add it to your Gemfile
182
+
183
+ ```ruby
184
+ gem 'capybara-screenshot', :group => :test
185
+ gem 'aws-sdk', :group => :test
186
+ ```
187
+
188
+ Next, configure capybara-screenshot with your S3 credentials, the bucket to save to, and an optional region (default: `us-east-1`).
189
+
190
+ ```ruby
191
+ Capybara::Screenshot.s3_configuration = {
192
+ s3_client_credentials: {
193
+ access_key_id: "my_access_key_id",
194
+ secret_access_key: "my_secret_access_key",
195
+ region: "eu-central-1"
196
+ },
197
+ bucket_name: "my_screenshots"
198
+ }
199
+ ```
200
+
201
+
177
202
  Pruning old screenshots automatically
178
203
  --------------------------
179
204
  By default screenshots are saved indefinitely, if you want them to be automatically pruned on a new failure, then you can specify one of the following prune strategies as follows:
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency 'test-unit'
31
31
  s.add_development_dependency 'spinach'
32
32
  s.add_development_dependency 'minitest'
33
+ s.add_development_dependency 'aws-sdk'
33
34
 
34
35
  s.files = `git ls-files`.split("\n")
35
36
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -9,6 +9,7 @@ module Capybara
9
9
  attr_accessor :webkit_options
10
10
  attr_writer :final_session_name
11
11
  attr_accessor :prune_strategy
12
+ attr_accessor :s3_configuration
12
13
  end
13
14
 
14
15
  self.autosave_on_failure = true
@@ -18,6 +19,7 @@ module Capybara
18
19
  self.append_random = false
19
20
  self.webkit_options = {}
20
21
  self.prune_strategy = :keep_all
22
+ self.s3_configuration = {}
21
23
 
22
24
  def self.append_screenshot_path=(value)
23
25
  $stderr.puts "WARNING: Capybara::Screenshot.append_screenshot_path is deprecated. " +
@@ -26,7 +28,7 @@ module Capybara
26
28
  end
27
29
 
28
30
  def self.screenshot_and_save_page
29
- saver = Saver.new(Capybara, Capybara.page)
31
+ saver = new_saver(Capybara, Capybara.page)
30
32
  if saver.save
31
33
  {:html => saver.html_path, :image => saver.screenshot_path}
32
34
  end
@@ -35,7 +37,7 @@ module Capybara
35
37
  def self.screenshot_and_open_image
36
38
  require "launchy"
37
39
 
38
- saver = Saver.new(Capybara, Capybara.page, false)
40
+ saver = new_saver(Capybara, Capybara.page, false)
39
41
  if saver.save
40
42
  Launchy.open saver.screenshot_path
41
43
  {:html => nil, :image => saver.screenshot_path}
@@ -54,7 +56,7 @@ module Capybara
54
56
  end
55
57
 
56
58
  def self.capybara_root
57
- @capybara_root ||= if defined?(::Rails) && Rails.root.present?
59
+ @capybara_root ||= if defined?(::Rails) && ::Rails.root.present?
58
60
  ::Rails.root.join capybara_tmp_path
59
61
  elsif defined?(Padrino)
60
62
  File.expand_path(capybara_tmp_path, Padrino.root)
@@ -90,11 +92,28 @@ module Capybara
90
92
  @pruned_previous_screenshots = nil
91
93
  end
92
94
 
95
+ def self.new_saver(*args)
96
+ saver = Saver.new(*args)
97
+
98
+ unless s3_configuration.empty?
99
+ require 'capybara-screenshot/s3_saver'
100
+ saver = S3Saver.new_with_configuration(saver, s3_configuration)
101
+ end
102
+
103
+ return saver
104
+ end
105
+
93
106
  private
94
107
 
95
108
  # If the path isn't set, default to the current directory
96
109
  def self.capybara_tmp_path
97
- Capybara.save_and_open_page_path || '.'
110
+ # `#save_and_open_page_path` is deprecated
111
+ # https://github.com/jnicklas/capybara/blob/48ab1ede946dec2250a2d1d8cbb3313f25096456/History.md#L37
112
+ if Capybara.respond_to?(:save_path)
113
+ Capybara.save_path
114
+ else
115
+ Capybara.save_and_open_page_path
116
+ end || '.'
98
117
  end
99
118
  end
100
119
  end
@@ -1,5 +1,4 @@
1
1
  require "capybara-screenshot"
2
- require 'mkmf'
3
2
 
4
3
  Before do |scenario|
5
4
  Capybara::Screenshot.final_session_name = nil
@@ -10,7 +9,7 @@ After do |scenario|
10
9
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
11
10
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:cucumber, scenario)
12
11
 
13
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
12
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
14
13
  saver.save
15
14
  saver.output_screenshot_path
16
15
 
@@ -6,14 +6,14 @@ module Capybara::Screenshot::MiniTestPlugin
6
6
  Capybara::Screenshot.final_session_name = nil
7
7
  end
8
8
 
9
- def after_teardown
9
+ def before_teardown
10
10
  super
11
- if self.class.ancestors.map(&:to_s).include?('ActionDispatch::IntegrationTest')
11
+ if self.class.ancestors.map(&:to_s).include?('Capybara::DSL')
12
12
  if Capybara::Screenshot.autosave_on_failure && !passed? && !skipped?
13
13
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
14
14
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:minitest, self)
15
15
 
16
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
16
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
17
17
  saver.save
18
18
  saver.output_screenshot_path
19
19
  end
@@ -3,6 +3,7 @@ require "capybara-screenshot"
3
3
  require "capybara-screenshot/rspec/text_reporter"
4
4
  require "capybara-screenshot/rspec/html_link_reporter"
5
5
  require "capybara-screenshot/rspec/html_embed_reporter"
6
+ require "capybara-screenshot/rspec/json_reporter"
6
7
  require "capybara-screenshot/rspec/textmate_link_reporter"
7
8
 
8
9
  module Capybara
@@ -39,6 +40,7 @@ module Capybara
39
40
  "RSpec::Core::Formatters::ProgressFormatter" => Capybara::Screenshot::RSpec::TextReporter,
40
41
  "RSpec::Core::Formatters::DocumentationFormatter" => Capybara::Screenshot::RSpec::TextReporter,
41
42
  "RSpec::Core::Formatters::HtmlFormatter" => Capybara::Screenshot::RSpec::HtmlLinkReporter,
43
+ "RSpec::Core::Formatters::JsonFormatter" => Capybara::Screenshot::RSpec::JsonReporter,
42
44
  "RSpec::Core::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter, # RSpec 2
43
45
  "RSpec::Mate::Formatters::TextMateFormatter" => Capybara::Screenshot::RSpec::TextMateLinkReporter, # RSpec 3
44
46
  "Fuubar" => Capybara::Screenshot::RSpec::TextReporter
@@ -53,7 +55,7 @@ module Capybara
53
55
  if Capybara.page.current_url != '' && Capybara::Screenshot.autosave_on_failure && example.exception
54
56
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:rspec, example)
55
57
 
56
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
58
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
57
59
  saver.save
58
60
 
59
61
  example.metadata[:screenshot] = {}
@@ -0,0 +1,19 @@
1
+ require 'capybara-screenshot/rspec/base_reporter'
2
+
3
+ module Capybara
4
+ module Screenshot
5
+ module RSpec
6
+ module JsonReporter
7
+ extend BaseReporter
8
+
9
+ enhance_with_screenshot :format_example
10
+
11
+ def format_example_with_screenshot(example)
12
+ format_example_without_screenshot(example).merge({
13
+ screenshot: example.metadata[:screenshot]
14
+ })
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,64 @@
1
+ require 'aws-sdk'
2
+
3
+ module Capybara
4
+ module Screenshot
5
+ class S3Saver
6
+ DEFAULT_REGION = 'us-east-1'
7
+
8
+ def initialize(saver, s3_client, bucket_name)
9
+ @saver = saver
10
+ @s3_client = s3_client
11
+ @bucket_name = bucket_name
12
+ end
13
+
14
+ def self.new_with_configuration(saver, configuration)
15
+ default_s3_client_credentials = {
16
+ region: DEFAULT_REGION
17
+ }
18
+
19
+ s3_client_credentials = default_s3_client_credentials.merge(
20
+ configuration.fetch(:s3_client_credentials)
21
+ )
22
+
23
+ s3_client = Aws::S3::Client.new(s3_client_credentials)
24
+ bucket_name = configuration.fetch(:bucket_name)
25
+
26
+ new(saver, s3_client, bucket_name)
27
+ rescue KeyError
28
+ raise "Invalid S3 Configuration #{configuration}. Please refer to the documentation for the necessary configurations."
29
+ end
30
+
31
+ def save_and_upload_screenshot
32
+ save_and do |local_file_path|
33
+ File.open(local_file_path) do |file|
34
+ s3_client.put_object(
35
+ bucket: bucket_name,
36
+ key: File.basename(local_file_path),
37
+ body: file
38
+ )
39
+ end
40
+ end
41
+ end
42
+ alias_method :save, :save_and_upload_screenshot
43
+
44
+ def method_missing(method, *args)
45
+ # Need to use @saver instead of S3Saver#saver attr_reader method because
46
+ # using the method goes into infinite loop. Maybe attr_reader implements
47
+ # its methods via method_missing?
48
+ @saver.send(method, *args)
49
+ end
50
+
51
+ private
52
+ attr_reader :saver,
53
+ :s3_client,
54
+ :bucket_name
55
+
56
+ def save_and
57
+ saver.save
58
+
59
+ yield(saver.html_path) if block_given? && saver.html_saved?
60
+ yield(saver.screenshot_path) if block_given? && saver.screenshot_saved?
61
+ end
62
+ end
63
+ end
64
+ end
@@ -9,7 +9,7 @@ module Capybara::Screenshot::Spinach
9
9
  if Capybara::Screenshot.autosave_on_failure
10
10
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
11
11
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:spinach, step_data)
12
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
12
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
13
13
  saver.save
14
14
  saver.output_screenshot_path
15
15
  end
@@ -27,7 +27,7 @@ Test::Unit::TestResult.class_eval do
27
27
  Capybara.using_session(Capybara::Screenshot.final_session_name) do
28
28
  filename_prefix = Capybara::Screenshot.filename_prefix_for(:testunit, fault)
29
29
 
30
- saver = Capybara::Screenshot::Saver.new(Capybara, Capybara.page, true, filename_prefix)
30
+ saver = Capybara::Screenshot.new_saver(Capybara, Capybara.page, true, filename_prefix)
31
31
  saver.save
32
32
  saver.output_screenshot_path
33
33
  end
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module Screenshot
3
- VERSION = '1.0.12'
3
+ VERSION = '1.0.13'
4
4
  end
5
5
  end
@@ -31,25 +31,6 @@ describe "Using Capybara::Screenshot with MiniTest" do
31
31
  end
32
32
 
33
33
  it 'saves a screenshot on failure' do
34
- run_failing_case <<-RUBY
35
- module ActionDispatch
36
- class IntegrationTest < Minitest::Unit::TestCase; end
37
- end
38
-
39
- class TestFailure < ActionDispatch::IntegrationTest
40
- include Capybara::DSL
41
-
42
- def test_failure
43
- visit '/'
44
- assert(page.body.include?('This is the root page'))
45
- click_on "you'll never find me"
46
- end
47
- end
48
- RUBY
49
- expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
50
- end
51
-
52
- it "does not save a screenshot for tests that don't inherit from ActionDispatch::IntegrationTest" do
53
34
  run_failing_case <<-RUBY
54
35
  class TestFailure < MiniTest::Unit::TestCase
55
36
  include Capybara::DSL
@@ -61,16 +42,12 @@ describe "Using Capybara::Screenshot with MiniTest" do
61
42
  end
62
43
  end
63
44
  RUBY
64
- expect('tmp/my_screenshot.html').to_not be_an_existing_file
45
+ expect('tmp/my_screenshot.html').to have_file_content('This is the root page')
65
46
  end
66
47
 
67
48
  it 'saves a screenshot for the correct session for failures using_session' do
68
49
  run_failing_case <<-RUBY
69
- module ActionDispatch
70
- class IntegrationTest < Minitest::Unit::TestCase; end
71
- end
72
-
73
- class TestFailure < ActionDispatch::IntegrationTest
50
+ class TestFailure < Minitest::Unit::TestCase
74
51
  include Capybara::DSL
75
52
 
76
53
  def test_failure
@@ -91,11 +68,7 @@ describe "Using Capybara::Screenshot with MiniTest" do
91
68
  create_screenshot_for_pruning
92
69
  configure_prune_strategy :last_run
93
70
  run_failing_case <<-RUBY
94
- module ActionDispatch
95
- class IntegrationTest < Minitest::Unit::TestCase; end
96
- end
97
-
98
- class TestFailure < ActionDispatch::IntegrationTest
71
+ class TestFailure < Minitest::Unit::TestCase
99
72
  include Capybara::DSL
100
73
 
101
74
  def test_failure
@@ -57,7 +57,8 @@ describe Capybara::Screenshot::RSpec, :type => :aruba do
57
57
  formatters = {
58
58
  progress: 'HTML screenshot:',
59
59
  documentation: 'HTML screenshot:',
60
- html: %r{<a href="file://\./tmp/screenshot\.html"[^>]*>HTML page</a>}
60
+ html: %r{<a href="file://\./tmp/screenshot\.html"[^>]*>HTML page</a>},
61
+ json: '"screenshot":{"'
61
62
  }
62
63
 
63
64
  # Textmate formatter is only included in RSpec 2
@@ -65,6 +65,32 @@ describe Capybara::Screenshot do
65
65
  end
66
66
  end
67
67
 
68
+ describe '.new_saver' do
69
+ it 'passes through to get a new Saver if the user has not configured s3' do
70
+ saver_double = double('saver')
71
+ args = double('args')
72
+ expect(Capybara::Screenshot::Saver).to receive(:new).with(args).and_return(saver_double)
73
+
74
+ expect(Capybara::Screenshot.new_saver(args)).to eq(saver_double)
75
+ end
76
+
77
+ it 'wraps the returned saver in an S3 saver if it has been configured' do
78
+ require 'capybara-screenshot/s3_saver'
79
+
80
+ saver_double = double('saver')
81
+ args = double('args')
82
+ s3_saver_double = double('s3_saver')
83
+ s3_configuration = { hello: 'world' }
84
+
85
+ Capybara::Screenshot.s3_configuration = s3_configuration
86
+
87
+ expect(Capybara::Screenshot::Saver).to receive(:new).with(args).and_return(saver_double)
88
+ expect(Capybara::Screenshot::S3Saver).to receive(:new_with_configuration).with(saver_double, s3_configuration).and_return(s3_saver_double)
89
+
90
+ expect(Capybara::Screenshot.new_saver(args)).to eq(s3_saver_double)
91
+ end
92
+ end
93
+
68
94
  describe '#prune' do
69
95
  before do
70
96
  Capybara::Screenshot.reset_prune_history
@@ -0,0 +1,132 @@
1
+ require 'spec_helper'
2
+ require 'capybara-screenshot/s3_saver'
3
+
4
+ describe Capybara::Screenshot::S3Saver do
5
+ let(:saver) { double('saver') }
6
+ let(:bucket_name) { double('bucket_name') }
7
+ let(:s3_client) { double('s3_client') }
8
+
9
+ let(:s3_saver) { Capybara::Screenshot::S3Saver.new(saver, s3_client, bucket_name) }
10
+
11
+ describe '.new_with_configuration' do
12
+ let(:access_key_id) { double('access_key_id') }
13
+ let(:secret_access_key) { double('secret_access_key') }
14
+ let(:s3_client_credentials_using_defaults) {
15
+ {
16
+ access_key_id: access_key_id,
17
+ secret_access_key: secret_access_key
18
+ }
19
+ }
20
+
21
+ let(:region) { double('region') }
22
+ let(:s3_client_credentials) {
23
+ s3_client_credentials_using_defaults.merge(region: region)
24
+ }
25
+
26
+ it 'destructures the configuration into its components' do
27
+ allow(Aws::S3::Client).to receive(:new).and_return(s3_client)
28
+ allow(Capybara::Screenshot::S3Saver).to receive(:new)
29
+
30
+ Capybara::Screenshot::S3Saver.new_with_configuration(saver, {
31
+ s3_client_credentials: s3_client_credentials,
32
+ bucket_name: bucket_name
33
+ })
34
+
35
+ expect(Aws::S3::Client).to have_received(:new).with(s3_client_credentials)
36
+ expect(Capybara::Screenshot::S3Saver).to have_received(:new).with(saver, s3_client, bucket_name)
37
+ end
38
+
39
+ it 'defaults the region to us-east-1' do
40
+ default_region = 'us-east-1'
41
+
42
+ allow(Aws::S3::Client).to receive(:new).and_return(s3_client)
43
+ allow(Capybara::Screenshot::S3Saver).to receive(:new)
44
+
45
+ Capybara::Screenshot::S3Saver.new_with_configuration(saver, {
46
+ s3_client_credentials: s3_client_credentials_using_defaults,
47
+ bucket_name: bucket_name
48
+ })
49
+
50
+ expect(Aws::S3::Client).to have_received(:new).with(
51
+ s3_client_credentials.merge(region: default_region)
52
+ )
53
+
54
+ expect(Capybara::Screenshot::S3Saver).to have_received(:new).with(saver, s3_client, bucket_name)
55
+ end
56
+ end
57
+
58
+ describe '#save' do
59
+ before do
60
+ allow(saver).to receive(:html_saved?).and_return(false)
61
+ allow(saver).to receive(:screenshot_saved?).and_return(false)
62
+ allow(saver).to receive(:save)
63
+ end
64
+
65
+ it 'calls save on the underlying saver' do
66
+ expect(saver).to receive(:save)
67
+
68
+ s3_saver.save
69
+ end
70
+
71
+ it 'uploads the html' do
72
+ html_path = '/foo/bar.html'
73
+ expect(saver).to receive(:html_path).and_return(html_path)
74
+ expect(saver).to receive(:html_saved?).and_return(true)
75
+
76
+ html_file = double('html_file')
77
+
78
+ expect(File).to receive(:open).with(html_path).and_yield(html_file)
79
+
80
+ expect(s3_client).to receive(:put_object).with(
81
+ bucket: bucket_name,
82
+ key: 'bar.html',
83
+ body: html_file
84
+ )
85
+
86
+ s3_saver.save
87
+ end
88
+
89
+ it 'uploads the screenshot' do
90
+ screenshot_path = '/baz/bim.jpg'
91
+ expect(saver).to receive(:screenshot_path).and_return(screenshot_path)
92
+ expect(saver).to receive(:screenshot_saved?).and_return(true)
93
+
94
+ screenshot_file = double('screenshot_file')
95
+
96
+ expect(File).to receive(:open).with(screenshot_path).and_yield(screenshot_file)
97
+
98
+ expect(s3_client).to receive(:put_object).with(
99
+ bucket: bucket_name,
100
+ key: 'bim.jpg',
101
+ body: screenshot_file
102
+ )
103
+
104
+ s3_saver.save
105
+ end
106
+ end
107
+
108
+ # Needed because we cannot depend on Verifying Doubles
109
+ # in older RSpec versions
110
+ describe 'an actual saver' do
111
+ it 'implements the methods needed by the s3 saver' do
112
+ instance_methods = Capybara::Screenshot::Saver.instance_methods
113
+
114
+ expect(instance_methods).to include(:save)
115
+ expect(instance_methods).to include(:html_saved?)
116
+ expect(instance_methods).to include(:html_path)
117
+ expect(instance_methods).to include(:screenshot_saved?)
118
+ expect(instance_methods).to include(:screenshot_path)
119
+ end
120
+ end
121
+
122
+ describe 'any other method' do
123
+ it 'transparently passes through to the saver' do
124
+ allow(saver).to receive(:foo_bar)
125
+
126
+ args = double('args')
127
+ s3_saver.foo_bar(*args)
128
+
129
+ expect(saver).to have_received(:foo_bar).with(*args)
130
+ end
131
+ end
132
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-screenshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew O'Riordan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-29 00:00:00.000000000 Z
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: aws-sdk
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
159
173
  description: When a Cucumber step fails, it is useful to create a screenshot image
160
174
  and HTML file of the current page
161
175
  email:
@@ -192,8 +206,10 @@ files:
192
206
  - lib/capybara-screenshot/rspec/base_reporter.rb
193
207
  - lib/capybara-screenshot/rspec/html_embed_reporter.rb
194
208
  - lib/capybara-screenshot/rspec/html_link_reporter.rb
209
+ - lib/capybara-screenshot/rspec/json_reporter.rb
195
210
  - lib/capybara-screenshot/rspec/text_reporter.rb
196
211
  - lib/capybara-screenshot/rspec/textmate_link_reporter.rb
212
+ - lib/capybara-screenshot/s3_saver.rb
197
213
  - lib/capybara-screenshot/saver.rb
198
214
  - lib/capybara-screenshot/spinach.rb
199
215
  - lib/capybara-screenshot/testunit.rb
@@ -220,6 +236,7 @@ files:
220
236
  - spec/unit/rspec_reporters/html_link_reporter_spec.rb
221
237
  - spec/unit/rspec_reporters/text_reporter_spec.rb
222
238
  - spec/unit/rspec_reporters/textmate_link_reporter_spec.rb
239
+ - spec/unit/s3_saver_spec.rb
223
240
  - spec/unit/saver_spec.rb
224
241
  homepage: http://github.com/mattheworiordan/capybara-screenshot
225
242
  licenses:
@@ -269,4 +286,5 @@ test_files:
269
286
  - spec/unit/rspec_reporters/html_link_reporter_spec.rb
270
287
  - spec/unit/rspec_reporters/text_reporter_spec.rb
271
288
  - spec/unit/rspec_reporters/textmate_link_reporter_spec.rb
289
+ - spec/unit/s3_saver_spec.rb
272
290
  - spec/unit/saver_spec.rb