Sha256: 3dd736ea22c583ba26a4c454742e10efe283a167fba5145fa3f310e1aab3169e

Contents?: true

Size: 864 Bytes

Versions: 10

Compression:

Stored size: 864 Bytes

Contents

require "fileutils"
require "capybara"

module Capybara
  module HeadlessChrome
    class Downloads
      class NotFound < Capybara::ExpectationNotMet; end

      def dir
        pathname.to_s
      end

      def reset
        FileUtils.rm_rf(dir)
        FileUtils.mkdir_p(dir)
      end

      def filenames
        pathname.entries.reject(&:directory?).map(&:to_s)
      end

      def [] filename
        Capybara.current_session.document.synchronize do
          begin
            File.open(pathname.join(filename))
          rescue Errno::ENOENT
            raise NotFound.new("Couldn't find #{filename} in #{filenames}")
          end
        end
      end

      private

      def pathname
        @pathname ||= Capybara.save_path.join(unique_id, "downloads")
      end

      def unique_id
        Time.now.strftime('%s%L')
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
capybara-headless_chrome-0.6.4 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.6.3 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.6.2 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.6.1 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.6.0 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.5.0 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.4.0 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.3.0 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.2.1 lib/capybara/headless_chrome/downloads.rb
capybara-headless_chrome-0.2.0 lib/capybara/headless_chrome/downloads.rb