capybara 3.23.0 → 3.24.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.
- checksums.yaml +4 -4
 - data/History.md +17 -0
 - data/README.md +1 -2
 - data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +8 -4
 - data/lib/capybara/selenium/node.rb +2 -5
 - data/lib/capybara/selenium/nodes/chrome_node.rb +2 -0
 - data/lib/capybara/selenium/nodes/safari_node.rb +3 -1
 - data/lib/capybara/selenium/patches/logs.rb +34 -7
 - data/lib/capybara/spec/session/save_screenshot_spec.rb +0 -11
 - data/lib/capybara/spec/test_app.rb +4 -0
 - data/lib/capybara/version.rb +1 -1
 - data/spec/selenium_spec_chrome.rb +5 -4
 - data/spec/selenium_spec_chrome_remote.rb +17 -0
 - data/spec/shared_selenium_session.rb +7 -0
 - data/spec/spec_helper.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 2ea1da81bd27199aadc0d73d61e33b7ff0ea9911114acc375ea2e6f798a49eb4
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 30279a8a5ab221ae029bc95625c7c82ad11cdf68d91ef6be33e7a0b022268537
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0b8d7f760540297a204ae5eb0dac8b9450e8961652de87d543ae114edb9af6a48219db7c55a40e004d49847431ef545cc5628a6bbde858e58921209f984852d2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 56d10157a97fd98f7e2e23c98fc21f0dc0f70f53338a271c9fa22b639648d919134fe1c7c803be43f435a9618d49e2517ccce5d207139635c49d9f6f18a66bd6
         
     | 
    
        data/History.md
    CHANGED
    
    | 
         @@ -1,3 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Version 3.24.0
         
     | 
| 
      
 2 
     | 
    
         
            +
            Release date: 2079-06-13
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            * Log access when using the Selenium driver with Chrome 75 in W3C mode has been reenabled.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            ### Changed
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            * Selenium driver now selects all current content and then sends keys rather than clearing field by JS
         
     | 
| 
      
 11 
     | 
    
         
            +
              and then sending keys when setting values to text inputs in order to more closely simulate user behavior
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            ### Fixed
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            * Relative paths passed to `attach_file` will be assumed to be relative to the current working directory when using the
         
     | 
| 
      
 16 
     | 
    
         
            +
              Selenium driver
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       1 
18 
     | 
    
         
             
            # Version 3.23.0
         
     | 
| 
       2 
19 
     | 
    
         
             
            Release date: 2019-06-10
         
     | 
| 
       3 
20 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -7,8 +7,7 @@ 
     | 
|
| 
       7 
7 
     | 
    
         
             
            [](https://gitter.im/jnicklas/capybara?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
         
     | 
| 
       8 
8 
     | 
    
         
             
            [](https://dependabot.com/compatibility-score.html?dependency-name=capybara&package-manager=bundler&version-scheme=semver)
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
            **Note** You are viewing the README for the 3. 
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
            **Note** You are viewing the README for the 3.24.x version of Capybara.
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
12 
     | 
    
         
             
            Capybara helps you test web applications by simulating how a real user would
         
     | 
| 
       14 
13 
     | 
    
         
             
            interact with your app. It is agnostic about the driver running your tests and
         
     | 
| 
         @@ -6,7 +6,7 @@ require 'capybara/selenium/patches/logs' 
     | 
|
| 
       6 
6 
     | 
    
         
             
            module Capybara::Selenium::Driver::ChromeDriver
         
     | 
| 
       7 
7 
     | 
    
         
             
              def self.extended(base)
         
     | 
| 
       8 
8 
     | 
    
         
             
                bridge = base.send(:bridge)
         
     | 
| 
       9 
     | 
    
         
            -
                bridge.extend Capybara::Selenium::ChromeLogs unless bridge.respond_to?(: 
     | 
| 
      
 9 
     | 
    
         
            +
                bridge.extend Capybara::Selenium::ChromeLogs unless bridge.respond_to?(:log)
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def fullscreen_window(handle)
         
     | 
| 
         @@ -90,9 +90,13 @@ private 
     | 
|
| 
       90 
90 
     | 
    
         
             
              end
         
     | 
| 
       91 
91 
     | 
    
         | 
| 
       92 
92 
     | 
    
         
             
              def execute_cdp(cmd, params = {})
         
     | 
| 
       93 
     | 
    
         
            -
                 
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                 
     | 
| 
      
 93 
     | 
    
         
            +
                if browser.respond_to? :execute_cdp
         
     | 
| 
      
 94 
     | 
    
         
            +
                  browser.execute_cdp(cmd, params)
         
     | 
| 
      
 95 
     | 
    
         
            +
                else
         
     | 
| 
      
 96 
     | 
    
         
            +
                  args = { cmd: cmd, params: params }
         
     | 
| 
      
 97 
     | 
    
         
            +
                  result = bridge.http.call(:post, "session/#{bridge.session_id}/goog/cdp/execute", args)
         
     | 
| 
      
 98 
     | 
    
         
            +
                  result['value']
         
     | 
| 
      
 99 
     | 
    
         
            +
                end
         
     | 
| 
       96 
100 
     | 
    
         
             
              end
         
     | 
| 
       97 
101 
     | 
    
         | 
| 
       98 
102 
     | 
    
         
             
              def build_node(native_node, initial_cache = {})
         
     | 
| 
         @@ -224,10 +224,7 @@ private 
     | 
|
| 
       224 
224 
     | 
    
         
             
                elsif clear.is_a? Array
         
     | 
| 
       225 
225 
     | 
    
         
             
                  send_keys(*clear, value)
         
     | 
| 
       226 
226 
     | 
    
         
             
                else
         
     | 
| 
       227 
     | 
    
         
            -
                   
     | 
| 
       228 
     | 
    
         
            -
                  # Script can change a readonly element which user input cannot, so
         
     | 
| 
       229 
     | 
    
         
            -
                  # don't execute if readonly.
         
     | 
| 
       230 
     | 
    
         
            -
                  driver.execute_script "if (!arguments[0].readOnly){ arguments[0].value = '' }", self unless clear == :none
         
     | 
| 
      
 227 
     | 
    
         
            +
                  driver.execute_script 'arguments[0].select()', self unless clear == :none
         
     | 
| 
       231 
228 
     | 
    
         
             
                  send_keys(value)
         
     | 
| 
       232 
229 
     | 
    
         
             
                end
         
     | 
| 
       233 
230 
     | 
    
         
             
              end
         
     | 
| 
         @@ -303,7 +300,7 @@ private 
     | 
|
| 
       303 
300 
     | 
    
         | 
| 
       304 
301 
     | 
    
         
             
              def set_file(value) # rubocop:disable Naming/AccessorMethodName
         
     | 
| 
       305 
302 
     | 
    
         
             
                path_names = value.to_s.empty? ? [] : value
         
     | 
| 
       306 
     | 
    
         
            -
                native.send_keys(Array(path_names).join("\n"))
         
     | 
| 
      
 303 
     | 
    
         
            +
                native.send_keys(Array(path_names).map(&File.method(:expand_path)).join("\n"))
         
     | 
| 
       307 
304 
     | 
    
         
             
              end
         
     | 
| 
       308 
305 
     | 
    
         | 
| 
       309 
306 
     | 
    
         
             
              def set_content_editable(value) # rubocop:disable Naming/AccessorMethodName
         
     | 
| 
         @@ -34,6 +34,8 @@ class Capybara::Selenium::ChromeNode < Capybara::Selenium::Node 
     | 
|
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
              def click(*)
         
     | 
| 
       36 
36 
     | 
    
         
             
                super
         
     | 
| 
      
 37 
     | 
    
         
            +
              rescue ::Selenium::WebDriver::Error::ElementClickInterceptedError
         
     | 
| 
      
 38 
     | 
    
         
            +
                raise
         
     | 
| 
       37 
39 
     | 
    
         
             
              rescue ::Selenium::WebDriver::Error::WebDriverError => e
         
     | 
| 
       38 
40 
     | 
    
         
             
                # chromedriver 74 (at least on mac) raises the wrong error for this
         
     | 
| 
       39 
41 
     | 
    
         
             
                raise ::Selenium::WebDriver::Error::ElementClickInterceptedError, e.message if e.message.match?(/element click intercepted/)
         
     | 
| 
         @@ -16,7 +16,9 @@ class Capybara::Selenium::SafariNode < Capybara::Selenium::Node 
     | 
|
| 
       16 
16 
     | 
    
         
             
                  return find_css('th:first-child,td:first-child')[0].click(keys, options)
         
     | 
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
| 
       18 
18 
     | 
    
         
             
                raise
         
     | 
| 
       19 
     | 
    
         
            -
              rescue ::Selenium::WebDriver::Error::WebDriverError
         
     | 
| 
      
 19 
     | 
    
         
            +
              rescue ::Selenium::WebDriver::Error::WebDriverError => e
         
     | 
| 
      
 20 
     | 
    
         
            +
                raise unless e.instance_of? ::Selenium::WebDriver::Error::WebDriverError
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       20 
22 
     | 
    
         
             
                # Safari doesn't return a specific error here - assume it's an ElementNotInteractableError
         
     | 
| 
       21 
23 
     | 
    
         
             
                raise ::Selenium::WebDriver::Error::ElementNotInteractableError,
         
     | 
| 
       22 
24 
     | 
    
         
             
                      'Non distinct error raised in #click, translated to ElementNotInteractableError for retry'
         
     | 
| 
         @@ -4,16 +4,43 @@ module Capybara 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module Selenium
         
     | 
| 
       5 
5 
     | 
    
         
             
                module ChromeLogs
         
     | 
| 
       6 
6 
     | 
    
         
             
                  LOG_MSG = <<~MSG
         
     | 
| 
       7 
     | 
    
         
            -
                    Chromedriver 75+ defaults to W3C mode.  
     | 
| 
       8 
     | 
    
         
            -
                     
     | 
| 
       9 
     | 
    
         
            -
                    It is unknown how long non-W3C mode will be supported by chromedriver (it won't be supported by selenium-webdriver 4+) \
         
     | 
| 
       10 
     | 
    
         
            -
                    so you may need to consider other solutions in the near future.
         
     | 
| 
      
 7 
     | 
    
         
            +
                    Chromedriver 75+ defaults to W3C mode. Please upgrade to chromedriver >= \
         
     | 
| 
      
 8 
     | 
    
         
            +
                    75.0.3770.90 if you need to access logs while in W3C compliant mode.
         
     | 
| 
       11 
9 
     | 
    
         
             
                  MSG
         
     | 
| 
       12 
10 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                   
     | 
| 
       14 
     | 
    
         
            -
                     
     | 
| 
      
 11 
     | 
    
         
            +
                  COMMANDS = {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    get_available_log_types: [:get, 'session/:session_id/se/log/types'],
         
     | 
| 
      
 13 
     | 
    
         
            +
                    get_log: [:post, 'session/:session_id/se/log'],
         
     | 
| 
      
 14 
     | 
    
         
            +
                    get_log_legacy: [:post, 'session/:session_id/log']
         
     | 
| 
      
 15 
     | 
    
         
            +
                  }.freeze
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def commands(command)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    COMMANDS[command] || super
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  def available_log_types
         
     | 
| 
      
 22 
     | 
    
         
            +
                    types = execute :get_available_log_types
         
     | 
| 
      
 23 
     | 
    
         
            +
                    Array(types).map(&:to_sym)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  rescue ::Selenium::WebDriver::Error::UnknownCommandError
         
     | 
| 
      
 25 
     | 
    
         
            +
                    raise NotImplementedError, LOG_MSG
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  def log(type)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    data = begin
         
     | 
| 
      
 30 
     | 
    
         
            +
                             execute :get_log, {}, type: type.to_s
         
     | 
| 
      
 31 
     | 
    
         
            +
                           rescue ::Selenium::WebDriver::Error::UnknownCommandError
         
     | 
| 
      
 32 
     | 
    
         
            +
                             execute :get_log_legacy, {}, type: type.to_s
         
     | 
| 
      
 33 
     | 
    
         
            +
                           end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    Array(data).map do |l|
         
     | 
| 
      
 36 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 37 
     | 
    
         
            +
                        ::Selenium::WebDriver::LogEntry.new l.fetch('level', 'UNKNOWN'), l.fetch('timestamp'), l.fetch('message')
         
     | 
| 
      
 38 
     | 
    
         
            +
                      rescue KeyError
         
     | 
| 
      
 39 
     | 
    
         
            +
                        next
         
     | 
| 
      
 40 
     | 
    
         
            +
                      end
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  rescue ::Selenium::WebDriver::Error::UnknownCommandError
         
     | 
| 
      
 43 
     | 
    
         
            +
                    raise NotImplementedError, LOG_MSG
         
     | 
| 
       17 
44 
     | 
    
         
             
                  end
         
     | 
| 
       18 
45 
     | 
    
         
             
                end
         
     | 
| 
       19 
46 
     | 
    
         
             
              end
         
     | 
| 
         @@ -13,17 +13,6 @@ Capybara::SpecHelper.spec '#save_screenshot', requires: [:screenshot] do 
     | 
|
| 
       13 
13 
     | 
    
         
             
                FileUtils.rm_rf alternative_path
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              around do |example|
         
     | 
| 
       17 
     | 
    
         
            -
                # Workaround RSpec Issue - https://github.com/rspec/rspec-support/issues/374
         
     | 
| 
       18 
     | 
    
         
            -
                if respond_to?(:without_partial_double_verification)
         
     | 
| 
       19 
     | 
    
         
            -
                  without_partial_double_verification do
         
     | 
| 
       20 
     | 
    
         
            -
                    example.run
         
     | 
| 
       21 
     | 
    
         
            -
                  end
         
     | 
| 
       22 
     | 
    
         
            -
                else
         
     | 
| 
       23 
     | 
    
         
            -
                  example.run
         
     | 
| 
       24 
     | 
    
         
            -
                end
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
16 
     | 
    
         
             
              it 'generates sensible filename' do
         
     | 
| 
       28 
17 
     | 
    
         
             
                allow(@session.driver).to receive(:save_screenshot)
         
     | 
| 
       29 
18 
     | 
    
         | 
    
        data/lib/capybara/version.rb
    CHANGED
    
    
| 
         @@ -125,16 +125,17 @@ RSpec.describe 'Capybara::Session with chrome' do 
     | 
|
| 
       125 
125 
     | 
    
         
             
              describe 'log access' do
         
     | 
| 
       126 
126 
     | 
    
         
             
                before { skip 'Only makes sense in W3C mode' if ENV['W3C'] == 'false' }
         
     | 
| 
       127 
127 
     | 
    
         | 
| 
       128 
     | 
    
         
            -
                it ' 
     | 
| 
      
 128 
     | 
    
         
            +
                it 'does not error getting log types' do
         
     | 
| 
      
 129 
     | 
    
         
            +
                  skip if Gem::Version.new(session.driver.browser.capabilities['chrome']['chromedriverVersion'].split[0]) < Gem::Version.new('75.0.3770.90')
         
     | 
| 
       129 
130 
     | 
    
         
             
                  expect do
         
     | 
| 
       130 
131 
     | 
    
         
             
                    session.driver.browser.manage.logs.available_types
         
     | 
| 
       131 
     | 
    
         
            -
                  end. 
     | 
| 
      
 132 
     | 
    
         
            +
                  end.not_to raise_error
         
     | 
| 
       132 
133 
     | 
    
         
             
                end
         
     | 
| 
       133 
134 
     | 
    
         | 
| 
       134 
     | 
    
         
            -
                it ' 
     | 
| 
      
 135 
     | 
    
         
            +
                it 'does not error when getting logs' do
         
     | 
| 
       135 
136 
     | 
    
         
             
                  expect do
         
     | 
| 
       136 
137 
     | 
    
         
             
                    session.driver.browser.manage.logs.get(:browser)
         
     | 
| 
       137 
     | 
    
         
            -
                  end. 
     | 
| 
      
 138 
     | 
    
         
            +
                  end.not_to raise_error
         
     | 
| 
       138 
139 
     | 
    
         
             
                end
         
     | 
| 
       139 
140 
     | 
    
         
             
              end
         
     | 
| 
       140 
141 
     | 
    
         
             
            end
         
     | 
| 
         @@ -80,4 +80,21 @@ RSpec.describe 'Capybara::Session with remote Chrome' do 
     | 
|
| 
       80 
80 
     | 
    
         
             
              it 'is considered to be chrome' do
         
     | 
| 
       81 
81 
     | 
    
         
             
                expect(session.driver.browser.browser).to eq :chrome
         
     | 
| 
       82 
82 
     | 
    
         
             
              end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
              describe 'log access' do
         
     | 
| 
      
 85 
     | 
    
         
            +
                before { skip 'Only makes sense in W3C mode' if ENV['W3C'] == 'false' }
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                it 'does not error when getting log types' do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  skip if Gem::Version.new(session.driver.browser.capabilities['chrome']['chromedriverVersion'].split[0]) < Gem::Version.new('75.0.3770.90')
         
     | 
| 
      
 89 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 90 
     | 
    
         
            +
                    session.driver.browser.manage.logs.available_types
         
     | 
| 
      
 91 
     | 
    
         
            +
                  end.not_to raise_error
         
     | 
| 
      
 92 
     | 
    
         
            +
                end
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                it 'does not error when getting logs' do
         
     | 
| 
      
 95 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 96 
     | 
    
         
            +
                    session.driver.browser.manage.logs.get(:browser)
         
     | 
| 
      
 97 
     | 
    
         
            +
                  end.not_to raise_error
         
     | 
| 
      
 98 
     | 
    
         
            +
                end
         
     | 
| 
      
 99 
     | 
    
         
            +
              end
         
     | 
| 
       83 
100 
     | 
    
         
             
            end
         
     | 
| 
         @@ -321,6 +321,13 @@ RSpec.shared_examples 'Capybara::Session' do |session, mode| 
     | 
|
| 
       321 
321 
     | 
    
         
             
                    session.click_button('Upload Multiple')
         
     | 
| 
       322 
322 
     | 
    
         
             
                    expect(session.body).to include('5 | ') # number of files
         
     | 
| 
       323 
323 
     | 
    
         
             
                  end
         
     | 
| 
      
 324 
     | 
    
         
            +
             
     | 
| 
      
 325 
     | 
    
         
            +
                  it 'can attach a relative file' do
         
     | 
| 
      
 326 
     | 
    
         
            +
                    session.visit('/form')
         
     | 
| 
      
 327 
     | 
    
         
            +
                    session.attach_file('Single Document', 'spec/fixtures/capybara.csv')
         
     | 
| 
      
 328 
     | 
    
         
            +
                    session.click_button('Upload Single')
         
     | 
| 
      
 329 
     | 
    
         
            +
                    expect(session.body).to include('Content-type: text/csv')
         
     | 
| 
      
 330 
     | 
    
         
            +
                  end
         
     | 
| 
       324 
331 
     | 
    
         
             
                end
         
     | 
| 
       325 
332 
     | 
    
         | 
| 
       326 
333 
     | 
    
         
             
                context 'Windows' do
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: capybara
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.24.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thomas Walpole
         
     | 
| 
         @@ -10,7 +10,7 @@ autorequire: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain:
         
     | 
| 
       12 
12 
     | 
    
         
             
            - gem-public_cert.pem
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2019-06- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2019-06-14 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: addressable
         
     |