superbara 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 659215e85670d441f58b6f032b23fa89aacb449c
4
+ data.tar.gz: 99aaed6b34fe5b705e018a071ffd8d08f859e6c2
5
+ SHA512:
6
+ metadata.gz: 55732a37e7a80671757ac437665563ea0d6bf0e470556341eafe44472a1a6fa430d64d30b56859b28f41637c540273352cd0eb5f9957b2e5d3250eefdc4a4b89
7
+ data.tar.gz: 896fe7a36c6dde7b767a21be32afec788514ca65d327d95f721e05afd847f1cecabe4402dbaab5252d0db88e850a26efd29023cca51570916c4f3903aac24811
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *.gem
2
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.ruby-gemset ADDED
@@ -0,0 +1,2 @@
1
+ superbara
2
+
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.4.1
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in superbara.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,99 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ superbara (0.0.1)
5
+ binding_of_caller
6
+ capybara (= 2.15.1)
7
+ chromedriver-helper (= 1.1.0)
8
+ colorize (= 0.8.1)
9
+ pry-byebug (= 3.4.2)
10
+ rspec (= 3.6.0)
11
+ selenium-webdriver (= 3.5.1)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ addressable (2.5.1)
17
+ public_suffix (~> 2.0, >= 2.0.2)
18
+ archive-zip (0.7.0)
19
+ io-like (~> 0.3.0)
20
+ binding_of_caller (0.7.2)
21
+ debug_inspector (>= 0.0.1)
22
+ byebug (9.0.6)
23
+ capybara (2.15.1)
24
+ addressable
25
+ mini_mime (>= 0.1.3)
26
+ nokogiri (>= 1.3.3)
27
+ rack (>= 1.0.0)
28
+ rack-test (>= 0.5.4)
29
+ xpath (~> 2.0)
30
+ childprocess (0.7.1)
31
+ ffi (~> 1.0, >= 1.0.11)
32
+ chromedriver-helper (1.1.0)
33
+ archive-zip (~> 0.7.0)
34
+ nokogiri (~> 1.6)
35
+ coderay (1.1.1)
36
+ colorize (0.8.1)
37
+ debug_inspector (0.0.3)
38
+ diff-lcs (1.3)
39
+ ffi (1.9.18)
40
+ io-like (0.3.0)
41
+ listen (3.1.5)
42
+ rb-fsevent (~> 0.9, >= 0.9.4)
43
+ rb-inotify (~> 0.9, >= 0.9.7)
44
+ ruby_dep (~> 1.2)
45
+ method_source (0.8.2)
46
+ mini_mime (0.1.4)
47
+ mini_portile2 (2.2.0)
48
+ nokogiri (1.8.0)
49
+ mini_portile2 (~> 2.2.0)
50
+ pry (0.10.4)
51
+ coderay (~> 1.1.0)
52
+ method_source (~> 0.8.1)
53
+ slop (~> 3.4)
54
+ pry-byebug (3.4.2)
55
+ byebug (~> 9.0)
56
+ pry (~> 0.10)
57
+ public_suffix (2.0.5)
58
+ rack (2.0.3)
59
+ rack-test (0.7.0)
60
+ rack (>= 1.0, < 3)
61
+ rake (10.5.0)
62
+ rb-fsevent (0.10.2)
63
+ rb-inotify (0.9.10)
64
+ ffi (>= 0.5.0, < 2)
65
+ rerun (0.11.0)
66
+ listen (~> 3.0)
67
+ rspec (3.6.0)
68
+ rspec-core (~> 3.6.0)
69
+ rspec-expectations (~> 3.6.0)
70
+ rspec-mocks (~> 3.6.0)
71
+ rspec-core (3.6.0)
72
+ rspec-support (~> 3.6.0)
73
+ rspec-expectations (3.6.0)
74
+ diff-lcs (>= 1.2.0, < 2.0)
75
+ rspec-support (~> 3.6.0)
76
+ rspec-mocks (3.6.0)
77
+ diff-lcs (>= 1.2.0, < 2.0)
78
+ rspec-support (~> 3.6.0)
79
+ rspec-support (3.6.0)
80
+ ruby_dep (1.5.0)
81
+ rubyzip (1.2.1)
82
+ selenium-webdriver (3.5.1)
83
+ childprocess (~> 0.5)
84
+ rubyzip (~> 1.0)
85
+ slop (3.6.0)
86
+ xpath (2.1.0)
87
+ nokogiri (~> 1.3)
88
+
89
+ PLATFORMS
90
+ ruby
91
+
92
+ DEPENDENCIES
93
+ bundler (~> 1.15)
94
+ rake (~> 10.0)
95
+ rerun (= 0.11.0)
96
+ superbara!
97
+
98
+ BUNDLED WITH
99
+ 1.15.3
data/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # Superbara
2
+
3
+ - highlight: click, [found, toomanyfound]
4
+ - $e
5
+ - rspec
6
+ - before header
7
+ - after exception highlight
8
+ - console
9
+ - DSL
10
+ - wait
11
+ - control+c closes browser
12
+ - moar!
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/autotest ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+
3
+ rspec spec
4
+ fswatch -o lib spec | xargs -n1 -I{} rake
data/bin/console ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "superbara"
5
+
6
+ include Superbara::DSL
7
+ include Capybara::DSL
8
+
9
+ Capybara::Session.new :chrome_remote
10
+
11
+ visit "http://www.example.com"
12
+
13
+ Pry.start
data/bin/release ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env sh
2
+
3
+ gem build superbara.gemspec
data/exe/superbara ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ base_path = File.dirname(File.dirname(__FILE__))
4
+
5
+ Process.exec "#{base_path}/lib/supershell #{ARGV.join(' ')}"
data/lib/pry_monkey.rb ADDED
@@ -0,0 +1,92 @@
1
+ require "pry-byebug"
2
+ require "binding_of_caller"
3
+ class Pry
4
+ class Command::Whereami < Pry::ClassCommand
5
+ alias_method :process_orig, :process
6
+ def process
7
+ if $supress_pry_whereami
8
+ $supress_pry_whereami = false
9
+ puts ""
10
+ nil
11
+ else
12
+ process_orig
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ Pry.config.prompt = proc {
19
+ prefix = "\n==[ console ]== (".colorize(:black).on_white
20
+
21
+ prefix << "r".colorize(:light_blue).on_white.underline
22
+ prefix << "estart, ".colorize(:black).on_white
23
+
24
+ prefix << "c".colorize(:light_blue).on_white.underline
25
+ prefix << "ontinue, ".colorize(:black).on_white
26
+
27
+ prefix << "e".colorize(:light_blue).on_white.underline
28
+ prefix << "dit, ".colorize(:black).on_white
29
+
30
+ prefix << "q".colorize(:light_blue).on_white.underline
31
+ prefix << "uit".colorize(:black).on_white
32
+
33
+ prefix << ") ".colorize(:black).on_white
34
+ prefix << "\n"
35
+ print prefix
36
+
37
+ ""
38
+ }
39
+
40
+ Pry.commands.alias_command 'c', 'continue'
41
+ Pry.commands.alias_command 's', 'step'
42
+ Pry.commands.alias_command 'n', 'next'
43
+ Pry.commands.alias_command 'h', 'help'
44
+
45
+ Pry::Commands.command /^e$/, "edit" do
46
+ puts "Opening #{$superbara_current_file} ..."
47
+ begin
48
+ `superbara edit #{$superbara_current_file}`
49
+ rescue Exception => ex
50
+ puts "[development mode edit]"
51
+ `exe/superbara edit #{$superbara_current_file}`
52
+ end
53
+ end
54
+
55
+ Pry::Commands.command /^help$/, "help" do
56
+
57
+ capybara_help_help = '''
58
+ e = find "h1", text: "Example Domain"
59
+ e = find "h1", text: /xample Dom/
60
+ e.click
61
+
62
+ e = wait 2 do
63
+ find "p", text: "Added to the cart"
64
+ end
65
+ e.click
66
+
67
+ more: https://github.com/teamcapybara/capybara#the-dsl'''
68
+
69
+ capybara_help_header_prefix = "== HELP "
70
+ capybara_help_header_suffix = "=" * (IO.console.winsize.last - capybara_help_header_prefix.size)
71
+
72
+ puts """
73
+ #{capybara_help_header_prefix}#{capybara_help_header_suffix}
74
+ #{capybara_help_help}
75
+ """.colorize(:light_green)
76
+ end
77
+
78
+ Pry::Commands.command /^q$/, "abort" do
79
+ exit 1
80
+ end
81
+
82
+ Pry::Commands.command /^r$/, "retry" do
83
+ exit 2
84
+ end
85
+
86
+ Pry::Commands.command /^$/, "repeat last command if stepping" do
87
+ last_command = Pry.history.to_a.last
88
+
89
+ if ["next", "n", "step", "s", "continue", "c"].include? last_command
90
+ _pry_.run_command last_command
91
+ end
92
+ end
@@ -0,0 +1,10 @@
1
+ Capybara.register_driver :chrome do
2
+ options = ::Selenium::WebDriver::Chrome::Options.new
3
+ options.add_argument 'window-size=1680,1024'
4
+ options.add_argument 'disable-infobars'
5
+
6
+ Capybara::Selenium::Driver.new(nil,
7
+ browser: :chrome,
8
+ options: options
9
+ )
10
+ end
@@ -0,0 +1,10 @@
1
+ Capybara.register_driver :chrome_headless do
2
+ options = ::Selenium::WebDriver::Chrome::Options.new
3
+ options.add_argument 'headless'
4
+ options.add_argument 'disable-gpu'
5
+
6
+ Capybara::Selenium::Driver.new(nil,
7
+ browser: :chrome,
8
+ options: options
9
+ )
10
+ end
@@ -0,0 +1,99 @@
1
+ module Superbara; module DSL
2
+ def wait(seconds, &block)
3
+ def formatted_output(status, took_delta)
4
+ word, color = if status
5
+ ["ok", :green]
6
+ else
7
+ ["FAIL", :red]
8
+ end
9
+
10
+ puts "#{word.colorize(color)} (took #{(took_delta)}s)"
11
+ end
12
+
13
+ seconds = seconds.to_f
14
+
15
+ print "--> waiting max #{seconds}s "
16
+ started_at = Time.now
17
+
18
+ previous_capybara_default_max_wait_time = Capybara.default_max_wait_time
19
+ block_value = nil
20
+ exception = nil
21
+ timed_out = false
22
+ begin
23
+ Capybara.default_max_wait_time = seconds
24
+ Timeout::timeout (seconds+0.1) do
25
+ block_value = block.call
26
+ end
27
+ rescue Timeout::Error => ex
28
+ timed_out = true
29
+ rescue Exception => ex
30
+ exception = ex
31
+ end
32
+
33
+ took_delta = (Time.now - started_at).floor(2)
34
+ Capybara.default_max_wait_time = previous_capybara_default_max_wait_time
35
+
36
+ if exception || timed_out
37
+ formatted_output false, took_delta
38
+
39
+ additional_started_at = Time.now
40
+ additional_block_value = nil
41
+ additional_exception = nil
42
+ puts " testing if waiting for 2 seconds more would help.."
43
+ begin
44
+ Capybara.default_max_wait_time = 2
45
+ additional_block_value = block.call
46
+ rescue Exception => ex
47
+ additional_exception = ex
48
+ end
49
+ additional_took_delta = (Time.now - additional_started_at).floor(2)
50
+ suggested_wait_value = (seconds + additional_took_delta).floor(2)
51
+
52
+ if additional_exception || additional_block_value.nil?
53
+ puts " ..did not help."
54
+ else
55
+ puts " ..setting wait to >#{suggested_wait_value} would help here?"
56
+ end
57
+
58
+ if exception
59
+ raise exception
60
+ else
61
+ raise "capybara timed out"
62
+ end
63
+ end
64
+
65
+ if block_value == false
66
+ formatted_output false, took_delta
67
+ raise "wait condition was falsy"
68
+ end
69
+
70
+ if block_value == nil
71
+ formatted_output false, took_delta
72
+ raise "wait condition was nil"
73
+ end
74
+
75
+ formatted_output true, took_delta
76
+ return block_value
77
+ end
78
+
79
+ def debug(exception_occurred:false)
80
+ return if ENV['SUPERBARA_FRONTEND'] == "noninteractive"
81
+ debug_help = """
82
+ c - continue to the next debug breakpoint
83
+ s - step to the next line
84
+ r - retry running
85
+ h - help on commands available
86
+ q - exit to shell"""
87
+
88
+ debug_header_prefix = "== DEBUG "
89
+ debug_header_suffix = "=" * (IO.console.winsize.last - debug_header_prefix.size)
90
+
91
+ puts """
92
+ #{debug_header_prefix}#{debug_header_suffix}
93
+ #{debug_help}
94
+ """.colorize(:light_green)
95
+
96
+ $supress_pry_whereami = true if exception_occurred
97
+ Pry.start(binding.of_caller(1))
98
+ end
99
+ end; end
@@ -0,0 +1,34 @@
1
+ module Superbara; module Helpers
2
+ def self.highlight_element(elem, styles={}, remove_highlight=100)
3
+ # Yes, could have used a template here.
4
+ js = """
5
+ window.__superbara = {};
6
+ __superbara.getElementByXpath = function(path) {
7
+ return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
8
+ };
9
+ window.__superbara.highlightElem = window.__superbara.getElementByXpath('#{elem.path}');
10
+ window.__superbara.highlightElem.oldStyle = {};
11
+ """
12
+ styles.each_pair do |k,v|
13
+ js << """window.__superbara.highlightElem.oldStyle.#{k} = window.__superbara.highlightElem.style.#{k};
14
+ window.__superbara.highlightElem.style.#{k} = '#{v}'
15
+ """
16
+ end
17
+
18
+ js << """
19
+ window.setTimeout(function() {
20
+ var e = window.__superbara.getElementByXpath('#{elem.path}');
21
+ """
22
+ styles.each_pair do |k,v|
23
+ js << """e.style.#{k} = e.oldStyle.#{k};
24
+ """
25
+ end
26
+
27
+ js << """
28
+ }, #{remove_highlight})
29
+ """
30
+
31
+ Capybara.current_session.current_window.session.execute_script js
32
+ end
33
+
34
+ end; end
@@ -0,0 +1,3 @@
1
+ module Superbara
2
+ VERSION = "0.0.1"
3
+ end
data/lib/superbara.rb ADDED
@@ -0,0 +1,64 @@
1
+ require "io/console"
2
+ require "colorize"
3
+ require "pry_monkey"
4
+
5
+ require "capybara"
6
+ require "capybara/dsl"
7
+ require "selenium-webdriver"
8
+
9
+ require "superbara/version"
10
+ require "superbara/dsl"
11
+ require "superbara/helpers"
12
+ require "superbara/drivers/chrome"
13
+ require "superbara/drivers/chrome_headless"
14
+
15
+ require "rspec"
16
+
17
+ trap "SIGINT" do
18
+ puts "
19
+ control+c pressed, closing the browser..."
20
+ begin
21
+ Timeout::timeout(2) do
22
+ Capybara.current_session.driver.browser.close
23
+ end
24
+ rescue Timeout::Error => e
25
+ puts "Browser failed to close within 2 seconds, exiting anyway.."
26
+ end
27
+
28
+ exit 99
29
+ end
30
+
31
+ Capybara.default_driver = :chrome
32
+ Capybara.default_max_wait_time = 1
33
+
34
+ RSpec.configure do |config|
35
+ config.include Capybara::DSL
36
+ config.include Superbara::DSL
37
+
38
+ config.fail_fast = true
39
+
40
+ config.before(:each) do |example|
41
+ $superbara_current_file = example.metadata[:example_group][:file_path]
42
+
43
+ puts ""
44
+ class_path = example.example_group_instance.class.to_s.split("::")
45
+ class_path.shift
46
+ class_path.shift
47
+ print class_path.shift
48
+ for c in class_path do
49
+ print "/#{c}"
50
+ end
51
+ puts " #{example.description} - #{example.location}"
52
+ puts "-"*IO.console.winsize.last
53
+ end
54
+
55
+ config.after(:each) do |example|
56
+ if example.exception
57
+ puts ("="*80).colorize(:yellow)
58
+ puts example.exception.message.colorize(:red)
59
+ puts ("="*80).colorize(:yellow)
60
+ debug(exception_occurred: true)
61
+ end
62
+ end
63
+ #
64
+ end
data/lib/supershell ADDED
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env sh
2
+ set -e
3
+
4
+ Edit () {
5
+ if [ "$EDITOR" != "" ]; then
6
+ $EDITOR $1
7
+ else
8
+ for editor in code atom micro vim vi msword; do
9
+ set +e
10
+ command -v $editor
11
+ if [ "$?" = 0 ]; then
12
+ $editor $1
13
+ break
14
+ fi
15
+ set -e
16
+ done
17
+ fi
18
+ }
19
+
20
+ Prompt () {
21
+ while true; do
22
+ printf "superbara $1 (enter or [r]estart, [e]dit, [q]uit) > "
23
+ read input
24
+ case "$input" in
25
+ ""|"restart"|"r")
26
+ echo "starting.."
27
+ break
28
+ ;;
29
+ "edit"|"e")
30
+ Edit $1
31
+ ;;
32
+ "quit"|"exit"|"q")
33
+ echo "bye."
34
+ exit 0
35
+ ;;
36
+ *)
37
+ echo "err: Unknown input $input
38
+
39
+ Usage:
40
+ enter (r, restart) - restart test
41
+ e or edit - open test in \$EDITOR (set to: $EDITOR) or best guess
42
+ q or quit - exit
43
+
44
+ "
45
+ ;;
46
+ esac
47
+ done
48
+ }
49
+
50
+ Usage () {
51
+ echo "USAGE: superbara
52
+
53
+ superbara init <testdir>
54
+ superbara edit <testdir>
55
+ superbara start <testdir>
56
+ superbara run <testdir>
57
+ "
58
+ exit 0
59
+ }
60
+
61
+ Error () {
62
+ echo "err: $@"
63
+ exit 1
64
+ }
65
+
66
+ case $1 in
67
+ ""|"init")
68
+ ;;
69
+ *)
70
+ if [ -f $2 ]; then
71
+ test_file=$2
72
+ else
73
+ test_file="${2}/${2}_spec.rb"
74
+ fi
75
+
76
+ if [ ! -f "$test_file" ]; then
77
+ Error "$test_file not found, create it with superbara init first"
78
+ fi
79
+ ;;
80
+ esac
81
+
82
+ case $1 in
83
+ "edit")
84
+ Edit $test_file
85
+ exit 0
86
+ ;;
87
+ "init")
88
+ test_name=$(basename $2)
89
+ spec_file="${test_name}_spec.rb"
90
+ target_file="${2}/${spec_file}"
91
+
92
+ if [ -f "$target_file" ]; then
93
+ Error "$target_file already exists"
94
+ fi
95
+ mkdir -p $2
96
+ echo "RSpec.describe \"${test_name}\" do" > $target_file
97
+ echo ''' it "loads" do
98
+ visit "http://www.example.com"
99
+ more_link = find "a", text: /ore information/
100
+ debug
101
+ more_link.click
102
+ debug
103
+ end
104
+ end''' >> "$target_file"
105
+
106
+ echo " --> created $target_file
107
+
108
+ start testing with:
109
+
110
+ superbara start $2
111
+ "
112
+ exit 0
113
+ ;;
114
+ "start")
115
+ shift
116
+ mode=workbench
117
+ break
118
+ ;;
119
+ "run")
120
+ shift
121
+ mode=single
122
+ break
123
+ ;;
124
+ *)
125
+ Usage
126
+ ;;
127
+ esac
128
+
129
+ while true; do
130
+ set +e
131
+ rspec --require superbara $@
132
+ rspec_exit_code=$?
133
+ set -e
134
+
135
+ case "$rspec_exit_code" in
136
+ 0)
137
+ if [ "$mode" = "single" ]; then
138
+ exit 0
139
+ fi
140
+ Prompt $test_file
141
+ ;;
142
+ 1)
143
+ echo "bye."
144
+ exit 0
145
+ ;;
146
+ 2)
147
+ echo "retry"
148
+ ;;
149
+ 99)
150
+ echo "control+c pressed, exiting..."
151
+ exit 0
152
+ ;;
153
+ *)
154
+ echo "err: unknown rspec exit code $rspec_exit_code"
155
+ exit 1
156
+ ;;
157
+ esac
158
+ done
data/superbara.gemspec ADDED
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "superbara/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "superbara"
8
+ spec.version = Superbara::VERSION
9
+ spec.authors = ["Matti Paksula"]
10
+ spec.email = ["matti.paksula@iki.fi"]
11
+
12
+ spec.summary = %q{Super Capybara}
13
+ spec.description = %q{Better way to build Capybara tests}
14
+ spec.homepage = "https://www.github.com/matti/superbara"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `if [ -d '.git' ]; then git ls-files -z; fi`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_dependency "colorize", "0.8.1"
25
+ spec.add_dependency "pry-byebug", "3.4.2"
26
+ spec.add_dependency "binding_of_caller", "0.7.2"
27
+ spec.add_dependency "capybara", "2.15.1"
28
+ spec.add_dependency "selenium-webdriver", "3.5.1"
29
+ spec.add_dependency "rspec", "3.6.0"
30
+ spec.add_dependency "chromedriver-helper", "1.1.0"
31
+
32
+ spec.add_development_dependency "rerun", "0.11.0"
33
+ spec.add_development_dependency "bundler", "~> 1.15"
34
+ spec.add_development_dependency "rake", "~> 10.0"
35
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: superbara
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matti Paksula
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-10-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry-byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.4.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.4.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: binding_of_caller
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.7.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.7.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.15.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.15.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: selenium-webdriver
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 3.5.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 3.5.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 3.6.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 3.6.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: chromedriver-helper
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 1.1.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 1.1.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: rerun
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.11.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 0.11.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: bundler
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.15'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.15'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '10.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '10.0'
153
+ description: Better way to build Capybara tests
154
+ email:
155
+ - matti.paksula@iki.fi
156
+ executables:
157
+ - superbara
158
+ extensions: []
159
+ extra_rdoc_files: []
160
+ files:
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - ".ruby-gemset"
164
+ - ".ruby-version"
165
+ - Gemfile
166
+ - Gemfile.lock
167
+ - README.md
168
+ - Rakefile
169
+ - bin/autotest
170
+ - bin/console
171
+ - bin/release
172
+ - exe/superbara
173
+ - lib/pry_monkey.rb
174
+ - lib/superbara.rb
175
+ - lib/superbara/drivers/chrome.rb
176
+ - lib/superbara/drivers/chrome_headless.rb
177
+ - lib/superbara/dsl.rb
178
+ - lib/superbara/helpers.rb
179
+ - lib/superbara/version.rb
180
+ - lib/supershell
181
+ - superbara.gemspec
182
+ homepage: https://www.github.com/matti/superbara
183
+ licenses:
184
+ - MIT
185
+ metadata: {}
186
+ post_install_message:
187
+ rdoc_options: []
188
+ require_paths:
189
+ - lib
190
+ required_ruby_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ requirements: []
201
+ rubyforge_project:
202
+ rubygems_version: 2.6.13
203
+ signing_key:
204
+ specification_version: 4
205
+ summary: Super Capybara
206
+ test_files: []