selenium-prep 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1b27c6417570b34619186a139d1f2f35f67fe163
4
+ data.tar.gz: d44aaaa38d2c9812211a30ca9745308e603b613c
5
+ SHA512:
6
+ metadata.gz: a58a8c2bea9630f88771ec85327f2764b9999de6175090bb797b7b53530198aeb41f33997b7c82d086ec77c3773fac9453f00f1905915b7230cdd4cc54147fff
7
+ data.tar.gz: 8eb1c83e25b5906d983352e14ee65869d8d777f7b109970fbada173f7d9250ea89026046cde099c72260e0909f87dd56c5032a2c307c93cad221a2321f583b0d
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .*.swp
2
+ .bundle
3
+ Gemfile.lock
4
+ tmp/
5
+ mkmf.log
6
+ .DS_Store
7
+ pkg
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,4 @@
1
+ guard :rspec, cmd: 'bundle exec rspec' do
2
+ watch(%r{^spec/*/.+_spec\.rb$})
3
+ watch(%r{^lib/*/*/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ end
data/README.txt ADDED
@@ -0,0 +1,57 @@
1
+ = selenium-prep
2
+
3
+ == DESCRIPTION:
4
+
5
+ selenium-prep helps set up your machine for local Selenium execution for multiple browsers. It downloads (in parallel) the latest browser drivers and standalone server to a specified location. It will then check your system PATH to see if the directory is in it. If not, it will provide you with information on how to configure it for your operating system.
6
+
7
+ == INSTALLATION:
8
+
9
+ Coming soon.
10
+
11
+ == USAGE:
12
+
13
+ === Environment Variables
14
+
15
+ SE_OS_TYPE (e.g., 'linux32', 'linux64', 'mac32', 'win32', 'win64')
16
+ SE_DOWNLOAD_LOCATION (e.g., full path)
17
+ SE_DEBUG (e.g., 'off' to disable all standard output -- on by default)
18
+
19
+ If these values are not set properly, a RuntimeError will be returned along with a helpful message.
20
+
21
+ === Downloading
22
+
23
+ SeleniumPrep.download
24
+
25
+ NOTE: The downloader will check to see if the download directory is empty. If not, it will prompt you to proceed, overwriting files of the same name.
26
+
27
+ === Check System Path
28
+
29
+ Find out if your path is set correctly and if not provide instructions on how to proceed.
30
+
31
+ SeleniumPrep.path_set?
32
+
33
+ NOTE: Will return a boolean result in addition to helpful messaging. This will automatically run after downloading completes.
34
+
35
+ == LICENSE:
36
+
37
+ The MIT License (MIT)
38
+
39
+ Copyright (c) 2014 Dave Haeffner
40
+
41
+ Permission is hereby granted, free of charge, to any person obtaining a copy
42
+ of this software and associated documentation files (the "Software"), to deal
43
+ in the Software without restriction, including without limitation the rights
44
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
45
+ copies of the Software, and to permit persons to whom the Software is
46
+ furnished to do so, subject to the following conditions:
47
+
48
+ The above copyright notice and this permission notice shall be included in all
49
+ copies or substantial portions of the Software.
50
+
51
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
52
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
53
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
54
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
55
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
56
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
57
+ SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,28 @@
1
+ module SeleniumPrep
2
+ class ConfigChecker
3
+
4
+ def initialize
5
+ download_location
6
+ os_type
7
+ end
8
+
9
+ private
10
+
11
+ ERRORS = { NoDownloadLocationSpecified: 'You need to specify a download location with SE_DOWNLOAD_LOCATION.',
12
+ NoOSTypeSpecified: 'You need to specify an operating system type with SE_OS_TYPE.' }
13
+
14
+ def download_location
15
+ if ENV['SE_DOWNLOAD_LOCATION'].nil?
16
+ raise ERRORS[:NoDownloadLocationSpecified]
17
+ end
18
+ end
19
+
20
+ def os_type
21
+ if ENV['SE_OS_TYPE'].nil?
22
+ raise ERRORS[:NoOSTypeSpecified]
23
+ end
24
+ end
25
+
26
+
27
+ end
28
+ end
@@ -0,0 +1,49 @@
1
+ require_relative 'urls'
2
+ require_relative 'config-checker'
3
+ require 'uri'
4
+ require 'typhoeus'
5
+ require 'fileutils'
6
+
7
+ module SeleniumPrep
8
+ module Downloader
9
+
10
+ include URLs
11
+ extend self
12
+
13
+ def download
14
+ ConfigChecker.new
15
+ hydra = Typhoeus::Hydra.new(max_concurrency: 3)
16
+ urls.each do |url|
17
+ file = file_for url
18
+ download = File.open(file, 'wb')
19
+ puts "[ #{Time.now} ] Downloading #{file}"
20
+ request = Typhoeus::Request.new url
21
+ request.on_body do |payload|
22
+ download.write payload
23
+ end
24
+ request.on_complete do |response|
25
+ download.close
26
+ puts "[ #{Time.now} ] Finished downloading #{file}"
27
+ end
28
+ hydra.queue request
29
+ end
30
+
31
+ hydra.run
32
+ end
33
+
34
+ private
35
+
36
+ def urls
37
+ tmp = []
38
+ tmp << DRIVERS[ENV['SE_OS_TYPE'].to_sym]
39
+ tmp << [ SERVER ]
40
+ tmp.flatten
41
+ end
42
+
43
+ def file_for(url)
44
+ filename = File.basename(URI.parse(url).path)
45
+ File.join(ENV['SE_DOWNLOAD_LOCATION'], filename)
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,19 @@
1
+ module SeleniumPrep
2
+
3
+ def self.debug_off?
4
+ ENV['SE_DEBUG'] == 'off'
5
+ end
6
+
7
+ end
8
+
9
+ module Kernel
10
+
11
+ def puts(input)
12
+ super input unless SeleniumPrep.debug_off?
13
+ end
14
+
15
+ def print(input)
16
+ super input unless SeleniumPrep.debug_off?
17
+ end
18
+
19
+ end
@@ -0,0 +1,41 @@
1
+ require 'zip'
2
+
3
+ module SeleniumPrep
4
+ module System
5
+ module Extract
6
+
7
+ extend self
8
+
9
+ def extract_zip_files
10
+ puts "Extracting zip files..."
11
+ zip_files.each do |file|
12
+ Zip::File.open(file, 'wb') do |zip_file|
13
+ zip_file.each do |f|
14
+ f_path = File.join(ENV['SE_DOWNLOAD_LOCATION'], f.name)
15
+ delete_file f_path if File.exist? f_path
16
+ zip_file.extract(f, f_path)
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ def delete_zip_files
23
+ puts 'Deleting zip files...'
24
+ zip_files.each { |zip_file| delete_file zip_file }
25
+ puts 'Done working with zip files.'
26
+ end
27
+
28
+ private
29
+
30
+ def zip_files
31
+ Dir.glob("#{ENV['SE_DOWNLOAD_LOCATION']}/*").collect do |file|
32
+ file if file.include?('.zip')
33
+ end.compact!
34
+ end
35
+
36
+ def delete_file(file)
37
+ FileUtils.rm file
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,36 @@
1
+ module SeleniumPrep
2
+ module System
3
+ module Folder
4
+
5
+ extend self
6
+
7
+ def directory_exists?
8
+ File.directory?(ENV['SE_DOWNLOAD_LOCATION'])
9
+ end
10
+
11
+ def downloads_exist?
12
+ !Dir.glob("#{ENV['SE_DOWNLOAD_LOCATION']}/*").empty?
13
+ end
14
+
15
+ def create_directory
16
+ FileUtils.mkdir_p(ENV['SE_DOWNLOAD_LOCATION'])
17
+ end
18
+
19
+ def empty_directory
20
+ FileUtils.rm_rf Dir.glob("#{ENV['SE_DOWNLOAD_LOCATION']}/*")
21
+ end
22
+
23
+ def prompt_user
24
+ puts 'Your downloads directory is not empty. This will overwrite files of the same name.'
25
+ print 'Proceed? [Y/N]: '
26
+ case $stdin.gets.chomp.downcase
27
+ when "y"
28
+ puts "Proceeding with download."
29
+ when "n"
30
+ raise 'Aborting download.'
31
+ end
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../config-checker'
2
+
3
+ module SeleniumPrep
4
+ module System
5
+ module Path
6
+
7
+ def self.set
8
+ ConfigChecker.new
9
+ puts "You need to add #{ENV['SE_DOWNLOAD_LOCATION']} to your path.\n\n"
10
+ case ENV['SE_OS_TYPE']
11
+ when 'win32', 'win64'
12
+ puts "For instructions on how to do that read:\n http://www.computerhope.com/issues/ch000549.htm"
13
+ when 'mac32', 'linux32', 'linux64'
14
+ puts "For instructions on how to do that read:\n http://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path"
15
+ end
16
+ end
17
+
18
+ def self.set?
19
+ ConfigChecker.new
20
+ case ENV['SE_OS_TYPE']
21
+ when 'win32', 'win64'
22
+ `echo %PATH%'`.include? ENV['SE_DOWNLOAD_LOCATION']
23
+ when 'mac32', 'linux32', 'linux64'
24
+ `echo $PATH`.include? ENV['SE_DOWNLOAD_LOCATION']
25
+ end
26
+ end
27
+
28
+ def self.path
29
+ ConfigChecker.new
30
+ case ENV['SE_OS_TYPE']
31
+ when 'win32', 'win64'
32
+ `echo %PATH%'`
33
+ when 'mac32', 'linux32', 'linux64'
34
+ `echo $PATH`
35
+ end
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,19 @@
1
+ module SeleniumPrep
2
+ module URLs
3
+
4
+ BASE_URL = { chrome_driver: 'http://chromedriver.storage.googleapis.com/2.11',
5
+ ie_driver: 'http://selenium-release.storage.googleapis.com/2.43',
6
+ standalone_server: 'http://selenium-release.storage.googleapis.com/2.43' }
7
+
8
+ SERVER = "#{BASE_URL[:standalone_server]}/selenium-server-standalone-2.43.1.jar"
9
+
10
+ DRIVERS = { mac32: [ "#{BASE_URL[:chrome_driver]}/chromedriver_mac32.zip" ],
11
+ win32: [ "#{BASE_URL[:chrome_driver]}/chromedriver_win32.zip",
12
+ "#{BASE_URL[:ie_driver]}/IEDriverServer_Win32_2.43.0.zip" ],
13
+ win64: [ "#{BASE_URL[:chrome_driver]}/chromedriver_win32.zip",
14
+ "#{BASE_URL[:ie_driver]}/IEDriverServer_x64_2.43.0.zip" ],
15
+ linux32: [ "#{BASE_URL[:chrome_driver]}/chromedriver_linux32.zip" ],
16
+ linux64: [ "#{BASE_URL[:chrome_driver]}/chromedriver_linux64.zip" ] }
17
+
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ module SeleniumPrep
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,32 @@
1
+ require_relative 'selenium-prep/downloader'
2
+ require_relative 'selenium-prep/system/path'
3
+ require_relative 'selenium-prep/system/folder'
4
+ require_relative 'selenium-prep/system/extract'
5
+ require_relative 'selenium-prep/overrides'
6
+
7
+ module SeleniumPrep
8
+
9
+ def self.download
10
+ ConfigChecker.new
11
+ System::Folder.create_directory
12
+ System::Folder.prompt_user if System::Folder.downloads_exist?
13
+ Downloader.download
14
+ System::Extract.extract_zip_files
15
+ System::Extract.delete_zip_files
16
+ puts "\n"
17
+ path_set?
18
+ end
19
+
20
+ def self.path_set?
21
+ ConfigChecker.new
22
+ result = System::Path.set?
23
+ result ?
24
+ (puts "Selenium is ready to use!") :
25
+ (puts "Your PATH is not configured correctly. \n\nHere is what it's set to now:\n")
26
+ puts System::Path.path
27
+ puts "\n"
28
+ System::Path.set
29
+ result
30
+ end
31
+
32
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'selenium-prep/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'selenium-prep'
8
+ spec.version = SeleniumPrep::VERSION
9
+ spec.authors = ['Dave Haeffner']
10
+ spec.email = ['dhaeffner@gmail.com']
11
+ spec.summary = %q{selenium-prep helps set up your machine for local Selenium execution for multiple browsers. It downloads (in parallel) the latest browser drivers and standalone server to a specified location. It will then check your system PATH to see if the directory is in it. If not, it will provide you with information on how to configure it for your operating system.}
12
+ spec.description = %q{See README.txt for more.}
13
+ spec.homepage = 'https://github.com/tourdedave/selenium-prep'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_dependency 'typhoeus', '~> 0.6.9'
21
+ spec.add_dependency 'rubyzip', '~> 1.1.6'
22
+ spec.add_development_dependency 'bundler', '~> 1.7'
23
+ spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'rspec', '~> 3.1.0'
25
+ spec.add_development_dependency 'guard-rspec', '~> 4.3.1'
26
+ end
@@ -0,0 +1,25 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep'
3
+
4
+ describe 'Config Checker -> ' do
5
+
6
+ before(:each) do
7
+ ENV['SE_OS_TYPE'] = nil
8
+ ENV['SE_DOWNLOAD_LOCATION'] = nil
9
+ end
10
+
11
+ it 'no OS type' do
12
+ ENV['SE_DOWNLOAD_LOCATION'] = 'asdf'
13
+ expect { SeleniumPrep.download }.to raise_error(
14
+ RuntimeError,
15
+ 'You need to specify an operating system type with SE_OS_TYPE.')
16
+ end
17
+
18
+ it 'no Download Location' do
19
+ ENV['SE_OS_TYPE'] = 'asdf'
20
+ expect { SeleniumPrep.download }.to raise_error(
21
+ RuntimeError,
22
+ 'You need to specify a download location with SE_DOWNLOAD_LOCATION.')
23
+ end
24
+
25
+ end
@@ -0,0 +1,23 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep/downloader'
3
+
4
+ describe 'Downloader' do
5
+
6
+ before(:all) do
7
+ ENV['SE_OS_TYPE'] = 'mac32'
8
+ @loc = ENV['SE_DOWNLOAD_LOCATION'] = File.join(Dir.pwd, 'spec/tmp/downloader')
9
+ FileUtils.rm_rf @loc
10
+ FileUtils.mkdir_p(@loc)
11
+ end
12
+
13
+ after(:all) do
14
+ FileUtils.rm_rf @loc
15
+ end
16
+
17
+ it 'downloads' do
18
+ expect(Dir.glob("#{@loc}/*")).to be_empty
19
+ SeleniumPrep::Downloader.download
20
+ expect(Dir.glob("#{@loc}/*")).not_to be_empty
21
+ end
22
+
23
+ end
@@ -0,0 +1,36 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep/downloader'
3
+ require_relative '../lib/selenium-prep/system/extract'
4
+
5
+ describe 'Extract', :acceptance do
6
+
7
+ before(:all) do
8
+ ENV['SE_OS_TYPE'] = 'mac32'
9
+ @loc = ENV['SE_DOWNLOAD_LOCATION'] = File.join(Dir.pwd, 'spec/tmp/file')
10
+ FileUtils.rm_rf @loc
11
+ FileUtils.mkdir_p @loc
12
+ SeleniumPrep::Downloader.download
13
+ end
14
+
15
+ after(:all) do
16
+ FileUtils.rm_rf @loc
17
+ end
18
+
19
+ def files
20
+ Dir.glob("#{@loc}/*")
21
+ end
22
+
23
+ it 'extracts' do
24
+ file_count = files.count
25
+ SeleniumPrep::System::Extract.extract_zip_files
26
+ expect(files.count).to eql file_count + 1
27
+ end
28
+
29
+ it 'cleans up' do
30
+ file_count = files.count
31
+ zip_files = files.collect { |file| file if file.include?('.zip') }.compact!
32
+ SeleniumPrep::System::Extract.delete_zip_files
33
+ expect(files.count).to eql(file_count - zip_files.count)
34
+ end
35
+
36
+ end
@@ -0,0 +1,71 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep/system/folder'
3
+
4
+ describe 'Folder creation -> ' do
5
+
6
+ before(:all) do
7
+ @loc = ENV['SE_DOWNLOAD_LOCATION'] = File.join(Dir.pwd, 'spec/tmp/folder')
8
+ end
9
+
10
+ context 'Sanity Checks' do
11
+
12
+ before(:each) do
13
+ FileUtils.mkdir_p(@loc)
14
+ end
15
+
16
+ after(:each) do
17
+ FileUtils.rm_rf @loc
18
+ end
19
+
20
+ it 'directory check' do
21
+ expect(SeleniumPrep::System::Folder.directory_exists?).to be true
22
+ end
23
+
24
+ it 'downloads check' do
25
+ expect(SeleniumPrep::System::Folder.downloads_exist?).to be false
26
+ end
27
+
28
+ it 'directory creation' do
29
+ FileUtils.rm_rf @loc
30
+ SeleniumPrep::System::Folder.create_directory
31
+ expect(SeleniumPrep::System::Folder.directory_exists?).to be true
32
+ end
33
+
34
+ it 'empty directory' do
35
+ SeleniumPrep::System::Folder.empty_directory
36
+ expect(SeleniumPrep::System::Folder.downloads_exist?).to be false
37
+ end
38
+ end
39
+
40
+ context 'User prompt -> ' do
41
+
42
+ class InputWrapper
43
+
44
+ def initialize(string)
45
+ @string = string
46
+ end
47
+
48
+ def gets
49
+ @string
50
+ end
51
+
52
+ def self.input(string)
53
+ $stdin = new(string)
54
+ yield
55
+ ensure
56
+ $stdin = STDIN
57
+ end
58
+
59
+ end
60
+
61
+ it 'aborted' do
62
+ InputWrapper.input 'N' do
63
+ expect { SeleniumPrep::System::Folder.prompt_user }.to raise_error(
64
+ RuntimeError,
65
+ 'Aborting download.')
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ end
@@ -0,0 +1,17 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep'
3
+
4
+ describe 'Selenium Prep', :acceptance do
5
+
6
+ it 'downloads' do
7
+ ENV['SE_DEBUG'] = 'off'
8
+ ENV['SE_OS_TYPE'] = 'mac32'
9
+ loc = ENV['SE_DOWNLOAD_LOCATION'] = File.join(Dir.pwd, 'spec/tmp/selenium-prep')
10
+ FileUtils.rm_rf loc
11
+ SeleniumPrep::System::Folder.create_directory
12
+ SeleniumPrep.download
13
+ expect(Dir.glob("#{loc}/*")).not_to be_empty
14
+ FileUtils.rm_rf loc
15
+ end
16
+
17
+ end
@@ -0,0 +1,2 @@
1
+ require_relative '../lib/selenium-prep/overrides'
2
+ ENV['SE_DEBUG'] = 'off'
data/spec/url_spec.rb ADDED
@@ -0,0 +1,27 @@
1
+ require_relative 'spec_helper'
2
+ require_relative '../lib/selenium-prep/urls'
3
+ require 'typhoeus'
4
+
5
+ describe 'Selenium URLs are valid -> ', :acceptance do
6
+
7
+ def request(url)
8
+ Typhoeus.head url
9
+ end
10
+
11
+ it 'Browser Drivers' do
12
+ urls = []
13
+ SeleniumPrep::URLs::DRIVERS.each { |os_type, url| urls << url }
14
+ urls.flatten.each do |url|
15
+ response = request url
16
+ expect(response.code).to eql 200
17
+ expect(response.headers['Content-Type']).to include('zip')
18
+ end
19
+ end
20
+
21
+ it 'Standalone Server' do
22
+ response = request SeleniumPrep::URLs::SERVER
23
+ expect(response.code).to eql 200
24
+ expect(response.headers['Content-Type']).to eql('application/java-archive')
25
+ end
26
+
27
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: selenium-prep
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Dave Haeffner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: typhoeus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.9
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.9
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubyzip
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.6
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.6
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 3.1.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 3.1.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 4.3.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 4.3.1
97
+ description: See README.txt for more.
98
+ email:
99
+ - dhaeffner@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - Gemfile
106
+ - Guardfile
107
+ - README.txt
108
+ - Rakefile
109
+ - lib/selenium-prep.rb
110
+ - lib/selenium-prep/config-checker.rb
111
+ - lib/selenium-prep/downloader.rb
112
+ - lib/selenium-prep/overrides.rb
113
+ - lib/selenium-prep/system/extract.rb
114
+ - lib/selenium-prep/system/folder.rb
115
+ - lib/selenium-prep/system/path.rb
116
+ - lib/selenium-prep/urls.rb
117
+ - lib/selenium-prep/version.rb
118
+ - selenium-prep.gemspec
119
+ - spec/config-checker_spec.rb
120
+ - spec/downloader_spec.rb
121
+ - spec/extract_spec.rb
122
+ - spec/folder_spec.rb
123
+ - spec/selenium-prep_spec.rb
124
+ - spec/spec_helper.rb
125
+ - spec/url_spec.rb
126
+ homepage: https://github.com/tourdedave/selenium-prep
127
+ licenses:
128
+ - MIT
129
+ metadata: {}
130
+ post_install_message:
131
+ rdoc_options: []
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ requirements: []
145
+ rubyforge_project:
146
+ rubygems_version: 2.2.2
147
+ signing_key:
148
+ specification_version: 4
149
+ summary: selenium-prep helps set up your machine for local Selenium execution for
150
+ multiple browsers. It downloads (in parallel) the latest browser drivers and standalone
151
+ server to a specified location. It will then check your system PATH to see if the
152
+ directory is in it. If not, it will provide you with information on how to configure
153
+ it for your operating system.
154
+ test_files:
155
+ - spec/config-checker_spec.rb
156
+ - spec/downloader_spec.rb
157
+ - spec/extract_spec.rb
158
+ - spec/folder_spec.rb
159
+ - spec/selenium-prep_spec.rb
160
+ - spec/spec_helper.rb
161
+ - spec/url_spec.rb