capybara-wheel 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/README.md +13 -12
- data/capybara-wheel.gemspec +3 -4
- data/lib/capybara/wheel/element.rb +18 -45
- data/lib/capybara/wheel/element_factory.rb +3 -9
- data/lib/capybara/wheel/includes.rb +8 -1
- data/lib/capybara/wheel/page.rb +6 -10
- data/lib/capybara/wheel/version.rb +1 -1
- data/spec/element_factory_spec.rb +13 -13
- data/spec/element_spec.rb +63 -35
- data/spec/feature_spec.rb +3 -3
- data/spec/includes_spec.rb +31 -0
- data/spec/page_spec.rb +37 -10
- metadata +25 -66
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b7eb7e1a4fe1c379fc67e9476d41d5a8ff903ae4
|
4
|
+
data.tar.gz: de3e57cf80c9486a20b9a8e2e55d5af5a660336e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e0f46027cfc86fcd4e7f64b9fb41855e095aec432cd417f9484a043386b9e339bc1969073a18211015ef6e0e6612a643c738ae8b158b977e4d827236a749fae6
|
7
|
+
data.tar.gz: f89b716d8127af090831941f80dd66d47228ded6f65a9835c80511c8a20500c195b8462d31e19ac8143c617ea0edd2bf33a5a3c1de63c578f0a02d002bbce30d
|
data/.rspec
ADDED
data/README.md
CHANGED
@@ -93,7 +93,7 @@ A page needs to implement two methods:
|
|
93
93
|
and
|
94
94
|
|
95
95
|
def on_page?
|
96
|
-
# Capybara Wheel calls this method before excuting the page block (see Specs section below
|
96
|
+
# Capybara Wheel calls this method before excuting the page block (see Specs section below)
|
97
97
|
# Recommended: Use Wheel native Page method has_title?('Title')
|
98
98
|
# e.g. has_title?('Login')
|
99
99
|
|
@@ -122,10 +122,7 @@ A page needs to implement two methods:
|
|
122
122
|
|
123
123
|
Once inside a Page model, it has access to the `element` method.
|
124
124
|
|
125
|
-
element '
|
126
|
-
|
127
|
-
# Wheel recommends using a name that follows the class constant name convention (i.e CamelCase)
|
128
|
-
# as an object will be created and assigned this name (see below)
|
125
|
+
element 'element_name', 'selector' *optional block*
|
129
126
|
|
130
127
|
The `element` method does several important things:
|
131
128
|
|
@@ -144,7 +141,7 @@ Passing a block to element gives access to the Element object for the purpose of
|
|
144
141
|
|
145
142
|
**_Example:_**
|
146
143
|
|
147
|
-
element '
|
144
|
+
element 'button_of_doom', '#doom-button' do
|
148
145
|
|
149
146
|
def armed?
|
150
147
|
capybara_element.text == 'Armed'
|
@@ -152,7 +149,7 @@ Passing a block to element gives access to the Element object for the purpose of
|
|
152
149
|
|
153
150
|
end
|
154
151
|
|
155
|
-
element '
|
152
|
+
element 'middle_tracker', '.missle-tracker'
|
156
153
|
|
157
154
|
|
158
155
|
#=> SuperVillanConsole.new.button_of_doom.armed?
|
@@ -165,7 +162,7 @@ Passing a block to element gives access to the Element object for the purpose of
|
|
165
162
|
|
166
163
|
An element block also accepts the `element` method.
|
167
164
|
|
168
|
-
element '
|
165
|
+
element 'sub_element_name', 'selector' *optional block*
|
169
166
|
|
170
167
|
When called inside an element block, the element behaves like an Element but is now scoped to the containing (or parent) element, which reduces ambiguity.
|
171
168
|
|
@@ -173,10 +170,10 @@ When called inside an element block, the element behaves like an Element but is
|
|
173
170
|
|
174
171
|
Two buttons have an `li` element with the `.key` class. We want to be able to find one and turn it without accidently causing world peace:
|
175
172
|
|
176
|
-
element '
|
173
|
+
element 'button_of_doom', '#doom-button' do
|
177
174
|
|
178
175
|
# reference to this key is scoped inside the #doom-button element
|
179
|
-
element '
|
176
|
+
element 'arming_key', 'li.key' do
|
180
177
|
|
181
178
|
def turn
|
182
179
|
click
|
@@ -185,10 +182,10 @@ When called inside an element block, the element behaves like an Element but is
|
|
185
182
|
end
|
186
183
|
end
|
187
184
|
|
188
|
-
element '
|
185
|
+
element 'button_of_world_peace', '#peace-button' do
|
189
186
|
|
190
187
|
# reference to this key is scoped inside the #peace-button element
|
191
|
-
element '
|
188
|
+
element 'arming_key', 'li.key' do
|
192
189
|
|
193
190
|
def turn
|
194
191
|
click
|
@@ -212,12 +209,16 @@ Wheel specs are written to always refer to the models and to never refer to Capy
|
|
212
209
|
|
213
210
|
The visit page would use the `on_page?` method to determine if we are indeed on the page. It will use Capyara's internal wait to poll the page until it is ready. We can then even excute within the scope of the page:
|
214
211
|
|
212
|
+
Use the `.visit` method to navigate to the page:
|
213
|
+
|
215
214
|
it 'can visit a page and pass a block to execute' do
|
216
215
|
some_page.visit do | page |
|
217
216
|
page.some_element.should be_visible
|
218
217
|
end
|
219
218
|
end
|
220
219
|
|
220
|
+
Or the `.on` method to act on a page without navigating (Capybara Wheel will still check we're on the page):
|
221
|
+
|
221
222
|
it 'can also just check if we're on the page without visiting it'
|
222
223
|
some_page.on do | page |
|
223
224
|
page.some_element.should be_visible
|
data/capybara-wheel.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'capybara/wheel/version'
|
@@ -18,11 +19,9 @@ Gem::Specification.new do |spec|
|
|
18
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
20
|
spec.require_paths = ["lib"]
|
20
21
|
|
21
|
-
spec.add_dependency "capybara"
|
22
|
-
spec.add_dependency "rspec"
|
22
|
+
spec.add_dependency "capybara"
|
23
23
|
|
24
|
-
spec.add_development_dependency "
|
25
|
-
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.1.0"
|
26
25
|
spec.add_development_dependency "selenium-webdriver", "~> 2.0"
|
27
26
|
spec.add_development_dependency "sinatra", "~> 1.0"
|
28
27
|
spec.add_development_dependency "pry"
|
@@ -9,32 +9,22 @@ module Capybara
|
|
9
9
|
include Capybara::Wheel::Includes
|
10
10
|
extend Capybara::Wheel::Includes::ClassIncludes
|
11
11
|
|
12
|
-
attr_reader :scope
|
12
|
+
attr_reader :selector, :options, :scope
|
13
13
|
|
14
|
-
def initialize(selector = nil, scope = nil)
|
15
|
-
@selector = selector
|
16
|
-
@
|
14
|
+
def initialize(selector = nil, options = {}, scope = nil)
|
15
|
+
@selector = selector
|
16
|
+
@options = options
|
17
|
+
@scope = scope
|
17
18
|
end
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
:text,
|
25
|
-
:visible?,
|
26
|
-
:present?,
|
27
|
-
:selected?,
|
28
|
-
:disabled?,
|
29
|
-
:tag_name,
|
30
|
-
:value,
|
31
|
-
:set,
|
32
|
-
:select_option,
|
33
|
-
:unselect_option,
|
34
|
-
:hover,
|
35
|
-
:[]
|
36
|
-
|
20
|
+
def self.capybara_element_methods
|
21
|
+
Capybara::Node::Element.instance_methods -
|
22
|
+
Capybara::Node::Element.methods -
|
23
|
+
Capybara::Node::Element.superclass.methods
|
24
|
+
end
|
37
25
|
|
26
|
+
def_delegators :capybara_element,
|
27
|
+
*capybara_element_methods
|
38
28
|
|
39
29
|
def present?
|
40
30
|
capybara_element.visible?
|
@@ -50,41 +40,24 @@ module Capybara
|
|
50
40
|
false
|
51
41
|
end
|
52
42
|
|
53
|
-
def self.element(name, selector, block = nil)
|
43
|
+
def self.element(name, selector, options = {}, block = nil)
|
54
44
|
subelement_factory = lambda do |parent_element|
|
55
|
-
Capybara::Wheel::ElementFactory.create_element(selector, parent_element, block)
|
45
|
+
Capybara::Wheel::ElementFactory.create_element(selector, parent_element, options, block)
|
56
46
|
end
|
57
47
|
|
58
48
|
define_method(underscore(name).to_sym) { subelement_factory.call(self) }
|
59
49
|
self
|
60
50
|
end
|
61
51
|
|
62
|
-
def element(name, selector, &block)
|
63
|
-
self.class.element(name, selector, block)
|
64
|
-
end
|
65
|
-
|
66
|
-
#TODO: deprecated in 0.0.5
|
67
|
-
def subelement(name, selector, &block)
|
68
|
-
puts "subelement will be deprecated in future versions."
|
69
|
-
puts "Calling element inside an element block will scope it to the parent element"
|
70
|
-
element(name, selector, block)
|
71
|
-
end
|
72
|
-
|
73
|
-
def self.subelement(name, selector, &block)
|
74
|
-
puts "subelement will be deprecated in future versions."
|
75
|
-
puts "Calling element inside an element block will scope it to the parent element"
|
76
|
-
element(name, selector, &block)
|
77
|
-
end
|
78
|
-
|
79
|
-
def selector
|
80
|
-
@selector
|
52
|
+
def element(name, selector, options = {}, &block)
|
53
|
+
self.class.element(name, selector, options, block)
|
81
54
|
end
|
82
55
|
|
83
56
|
private
|
84
57
|
|
85
58
|
# Finds a capybara element representing this thing
|
86
59
|
def capybara_element
|
87
|
-
scope_capybara.find(selector)
|
60
|
+
scope_capybara.find(selector, options)
|
88
61
|
end
|
89
62
|
|
90
63
|
def scope_capybara
|
@@ -93,4 +66,4 @@ module Capybara
|
|
93
66
|
|
94
67
|
end
|
95
68
|
end
|
96
|
-
end
|
69
|
+
end
|
@@ -4,23 +4,17 @@ module Capybara
|
|
4
4
|
module Wheel
|
5
5
|
class ElementFactory
|
6
6
|
|
7
|
-
def self.create_element_klass(selector, block = nil)
|
7
|
+
def self.create_element_klass(selector, options = {}, block = nil)
|
8
8
|
subclass = Class.new(Capybara::Wheel::Element)
|
9
9
|
|
10
|
-
_selector = selector
|
11
|
-
|
12
|
-
subclass.class_exec do
|
13
|
-
define_method(:selector) { @selector = _selector }
|
14
|
-
end
|
15
|
-
|
16
10
|
subclass.class_eval(&block) if block
|
17
11
|
|
18
12
|
subclass
|
19
13
|
end
|
20
14
|
|
21
15
|
#TODO: Pass object not an instance
|
22
|
-
def self.create_element(selector, parent_element, block = nil)
|
23
|
-
subelement = Capybara::Wheel::Element.new(selector, parent_element)
|
16
|
+
def self.create_element(selector, parent_element, options = {}, block = nil)
|
17
|
+
subelement = Capybara::Wheel::Element.new(selector, options, parent_element)
|
24
18
|
subelement.instance_eval(&block) if block
|
25
19
|
|
26
20
|
subelement
|
@@ -22,8 +22,15 @@ module Capybara
|
|
22
22
|
downcase
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
# Stolen from the Rails codebase
|
26
|
+
def camelize(term)
|
27
|
+
string = term.to_s
|
26
28
|
|
29
|
+
string = string.sub(/^[a-z\d]*/) { $&.capitalize }
|
30
|
+
|
31
|
+
string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$2.capitalize}" }
|
32
|
+
|
33
|
+
string
|
27
34
|
end
|
28
35
|
end
|
29
36
|
|
data/lib/capybara/wheel/page.rb
CHANGED
@@ -23,6 +23,7 @@ module Capybara
|
|
23
23
|
unless on_page?
|
24
24
|
raise "We don't appear to be on the #{self.class}"
|
25
25
|
end
|
26
|
+
|
26
27
|
yield self if block_given?
|
27
28
|
self
|
28
29
|
end
|
@@ -41,19 +42,14 @@ module Capybara
|
|
41
42
|
capybara.has_css?("head title", text: expected_title)
|
42
43
|
end
|
43
44
|
|
44
|
-
def self.element(name, selector, &block)
|
45
|
-
|
46
|
-
|
47
|
-
rescue NameError
|
48
|
-
puts "We recommend using capitalized element and subelement names"
|
49
|
-
name = name.capitalize!
|
50
|
-
retry
|
51
|
-
end
|
45
|
+
def self.element(name, selector, options = {}, &block)
|
46
|
+
klass_name = camelize(name)
|
47
|
+
element_klass = const_set("#{klass_name}", Capybara::Wheel::ElementFactory.create_element_klass(selector, options, block))
|
52
48
|
|
53
|
-
define_method(underscore(name).to_sym) { element_klass.new(selector) }
|
49
|
+
define_method(underscore(name).to_sym) { element_klass.new(selector, options) }
|
54
50
|
self
|
55
51
|
end
|
56
52
|
|
57
53
|
end
|
58
54
|
end
|
59
|
-
end
|
55
|
+
end
|
@@ -1,25 +1,25 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
3
|
+
describe 'ElementFactory' do
|
4
4
|
let(:subject) { Capybara::Wheel::ElementFactory }
|
5
5
|
let(:selector) { '#rad-selector'}
|
6
6
|
let(:created_element_klass) { subject.create_element_klass(selector) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
it 'allows access to the selector' do
|
14
|
-
created_element_klass.new.selector.should == selector
|
8
|
+
describe '.create_element_klass' do
|
9
|
+
it 'creates an element object' do
|
10
|
+
expect(created_element_klass.superclass).to eq(Capybara::Wheel::Element)
|
11
|
+
end
|
15
12
|
end
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
context 'when block provided' do
|
15
|
+
it 'it evalutes block' do
|
16
|
+
test_block = Proc.new do
|
17
|
+
def evaled_method
|
18
|
+
end
|
20
19
|
end
|
21
|
-
end
|
22
20
|
|
23
|
-
|
21
|
+
element = Capybara::Wheel::ElementFactory.create_element_klass(selector, {}, test_block)
|
22
|
+
expect(element.new).to respond_to(:evaled_method)
|
23
|
+
end
|
24
24
|
end
|
25
25
|
end
|
data/spec/element_spec.rb
CHANGED
@@ -1,50 +1,78 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module Capybara
|
4
|
+
module Wheel
|
5
|
+
describe Element do
|
6
|
+
let(:element_selector) { '#some-selector' }
|
7
|
+
let(:element) { Capybara::Wheel::Element }
|
8
|
+
let(:element_instance) { element.new(element_selector) }
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
it 'has delegators for Capybara actions' do
|
11
|
+
capybara_element_methods = Capybara::Node::Element.instance_methods -
|
12
|
+
Capybara::Node::Element.methods -
|
13
|
+
Capybara::Node::Element.superclass.methods
|
11
14
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
+
capybara_element_methods.each do |_method_|
|
16
|
+
expect(element_instance).to respond_to(_method_)
|
17
|
+
end
|
18
|
+
end
|
15
19
|
|
16
|
-
|
17
|
-
|
20
|
+
context '.element' do
|
21
|
+
let(:element_selector) { '#rad-parent-selector' }
|
18
22
|
|
19
|
-
|
20
|
-
|
23
|
+
let(:subelement_name) { 'RadSubElement' }
|
24
|
+
let(:subelement_selector) { '#rad-sub-selector' }
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
before do
|
27
|
+
element_instance.instance_eval do
|
28
|
+
element('rad_sub_element', '#rad-sub-selector')
|
29
|
+
end
|
30
|
+
end
|
27
31
|
|
28
|
-
|
29
|
-
|
30
|
-
|
32
|
+
it 'created a method for calling the element' do
|
33
|
+
expect(element_instance).to respond_to(:rad_sub_element)
|
34
|
+
end
|
31
35
|
|
32
|
-
|
33
|
-
|
34
|
-
|
36
|
+
it 'create a (sub)element with parent element context' do
|
37
|
+
expect(element_instance.send(:rad_sub_element).scope).to eq(element_instance)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'any method call on subelement is scoped within the parent element' do
|
41
|
+
subelement = element_instance.send(:rad_sub_element)
|
35
42
|
|
36
|
-
|
37
|
-
subelement = element_instance.send(:rad_sub_element)
|
38
|
-
mock_capybara_session = mock(Capybara::Session)
|
39
|
-
mock_capybara_element = mock('Capybara::Element')
|
40
|
-
Capybara.stub!(:current_session).and_return(mock_capybara_session)
|
41
|
-
mock_capybara_session.stub(:find).with(element_selector).and_return(mock_capybara_element)
|
42
|
-
mock_capybara_element.stub(:find).with(subelement_selector).and_return(mock_capybara_element)
|
43
|
+
expect(element_instance).to receive(:capybara_element).once.and_return(double('element', find: 'something'))
|
43
44
|
|
44
|
-
|
45
|
+
subelement.send(:capybara_element)
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'with extra options' do
|
49
|
+
|
50
|
+
before do
|
51
|
+
element_instance.instance_eval do
|
52
|
+
element('rad_sub_element', '#rad-sub-selector', visible: false)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'has options' do
|
57
|
+
expect(element_instance.rad_sub_element.options).to eq(visible: false)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when the method name is in the old camel case syntax' do
|
63
|
+
before do
|
64
|
+
element_instance.instance_eval do
|
65
|
+
element('OldRadSubElement', '#other-rad-sub-selector')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'created a method for calling the element' do
|
70
|
+
expect(element_instance).to respond_to(:old_rad_sub_element)
|
71
|
+
expect(element_instance.old_rad_sub_element.class).to eq(Capybara::Wheel::Element)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
45
75
|
|
46
|
-
subelement.send(:capybara_element)
|
47
76
|
end
|
48
77
|
end
|
49
|
-
|
50
78
|
end
|
data/spec/feature_spec.rb
CHANGED
@@ -11,11 +11,11 @@ feature 'runs as a wheel feature', :some_hook do
|
|
11
11
|
it 'should pass' do
|
12
12
|
end
|
13
13
|
|
14
|
-
it 'should be set as a wheel feature' do
|
15
|
-
example.metadata[:type].
|
14
|
+
it 'should be set as a wheel feature' do |example|
|
15
|
+
expect(example.metadata[:type]).to eq(:wheel_feature)
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'should pass the right hook' do
|
19
|
-
@hook_passed_on.
|
19
|
+
expect(@hook_passed_on).to be_truthy
|
20
20
|
end
|
21
21
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Capybara
|
4
|
+
module Wheel
|
5
|
+
describe Includes do
|
6
|
+
|
7
|
+
let(:some_class) do
|
8
|
+
class SomeClass
|
9
|
+
extend Capybara::Wheel::Includes::ClassIncludes
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '.camelize' do
|
14
|
+
it 'capitlizes one word' do
|
15
|
+
expect(some_class.camelize('downcase')).to eq('Downcase')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'camelizes underscored word' do
|
19
|
+
expect(some_class.camelize('under_score')).to eq('UnderScore')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '.underscore' do
|
24
|
+
it 'underscores and downcase a camelized word' do
|
25
|
+
expect(some_class.underscore('CamelCase')).to eq('camel_case')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/page_spec.rb
CHANGED
@@ -1,16 +1,43 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
module Capybara
|
4
|
+
module Wheel
|
5
|
+
describe Page do
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
let(:page) { Capybara::Wheel::Page }
|
8
|
+
|
9
|
+
it 'has access to capybara' do
|
10
|
+
expect(page.new).to respond_to(:capybara)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '.element' do
|
14
|
+
|
15
|
+
let(:page_instance) { page.element('rad_element', '#rad-selector').new }
|
16
|
+
|
17
|
+
it 'creates an accessor for an element instance' do
|
18
|
+
expect(page_instance.rad_element.class).to eq(Capybara::Wheel::Page::RadElement)
|
19
|
+
expect(page_instance.rad_element.selector).to eq('#rad-selector')
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when named using the old camel case syntax' do
|
23
|
+
let(:page_instance) { page.element('RadElement', '#rad-selector').new }
|
24
|
+
|
25
|
+
it 'creates an accessor for an element' do
|
26
|
+
expect(page_instance).to respond_to(:rad_element)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'element with extra options' do
|
31
|
+
let(:page_instance) { page.element('optional_element', '#opt-selector', visible: false).new }
|
32
|
+
|
33
|
+
it 'has options' do
|
34
|
+
expect(page_instance.optional_element.options).to eq(visible: false)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
9
40
|
|
10
|
-
context 'can create an element instance' do
|
11
|
-
it 'and create a method for it' do
|
12
|
-
page.element('RadElement', '#rad-selector').new.should respond_to(:rad_element)
|
13
41
|
end
|
14
42
|
end
|
15
|
-
|
16
|
-
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,126 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-wheel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
-
|
7
|
+
- "@gabrielrotbart"
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-12-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: capybara
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '2.1'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.1'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rspec
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
17
|
+
- - ">="
|
36
18
|
- !ruby/object:Gem::Version
|
37
19
|
version: '0'
|
38
20
|
type: :runtime
|
39
21
|
prerelease: false
|
40
22
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
23
|
requirements:
|
43
|
-
- -
|
24
|
+
- - ">="
|
44
25
|
- !ruby/object:Gem::Version
|
45
26
|
version: '0'
|
46
27
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1.3'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.3'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rake
|
28
|
+
name: rspec
|
64
29
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
30
|
requirements:
|
67
|
-
- -
|
31
|
+
- - "~>"
|
68
32
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
33
|
+
version: 3.1.0
|
70
34
|
type: :development
|
71
35
|
prerelease: false
|
72
36
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
37
|
requirements:
|
75
|
-
- -
|
38
|
+
- - "~>"
|
76
39
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
40
|
+
version: 3.1.0
|
78
41
|
- !ruby/object:Gem::Dependency
|
79
42
|
name: selenium-webdriver
|
80
43
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
44
|
requirements:
|
83
|
-
- - ~>
|
45
|
+
- - "~>"
|
84
46
|
- !ruby/object:Gem::Version
|
85
47
|
version: '2.0'
|
86
48
|
type: :development
|
87
49
|
prerelease: false
|
88
50
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
51
|
requirements:
|
91
|
-
- - ~>
|
52
|
+
- - "~>"
|
92
53
|
- !ruby/object:Gem::Version
|
93
54
|
version: '2.0'
|
94
55
|
- !ruby/object:Gem::Dependency
|
95
56
|
name: sinatra
|
96
57
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
58
|
requirements:
|
99
|
-
- - ~>
|
59
|
+
- - "~>"
|
100
60
|
- !ruby/object:Gem::Version
|
101
61
|
version: '1.0'
|
102
62
|
type: :development
|
103
63
|
prerelease: false
|
104
64
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
65
|
requirements:
|
107
|
-
- - ~>
|
66
|
+
- - "~>"
|
108
67
|
- !ruby/object:Gem::Version
|
109
68
|
version: '1.0'
|
110
69
|
- !ruby/object:Gem::Dependency
|
111
70
|
name: pry
|
112
71
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
72
|
requirements:
|
115
|
-
- -
|
73
|
+
- - ">="
|
116
74
|
- !ruby/object:Gem::Version
|
117
75
|
version: '0'
|
118
76
|
type: :development
|
119
77
|
prerelease: false
|
120
78
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
79
|
requirements:
|
123
|
-
- -
|
80
|
+
- - ">="
|
124
81
|
- !ruby/object:Gem::Version
|
125
82
|
version: '0'
|
126
83
|
description: Keeping the rodent on track
|
@@ -130,7 +87,8 @@ executables: []
|
|
130
87
|
extensions: []
|
131
88
|
extra_rdoc_files: []
|
132
89
|
files:
|
133
|
-
- .gitignore
|
90
|
+
- ".gitignore"
|
91
|
+
- ".rspec"
|
134
92
|
- Gemfile
|
135
93
|
- LICENSE.txt
|
136
94
|
- README.md
|
@@ -145,37 +103,38 @@ files:
|
|
145
103
|
- spec/element_factory_spec.rb
|
146
104
|
- spec/element_spec.rb
|
147
105
|
- spec/feature_spec.rb
|
106
|
+
- spec/includes_spec.rb
|
148
107
|
- spec/page_spec.rb
|
149
108
|
- spec/spec_helper.rb
|
150
109
|
homepage: http://github.com/hooroo/capybara-wheel
|
151
110
|
licenses:
|
152
111
|
- MIT
|
112
|
+
metadata: {}
|
153
113
|
post_install_message:
|
154
114
|
rdoc_options: []
|
155
115
|
require_paths:
|
156
116
|
- lib
|
157
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
-
none: false
|
159
118
|
requirements:
|
160
|
-
- -
|
119
|
+
- - ">="
|
161
120
|
- !ruby/object:Gem::Version
|
162
121
|
version: '0'
|
163
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
123
|
requirements:
|
166
|
-
- -
|
124
|
+
- - ">="
|
167
125
|
- !ruby/object:Gem::Version
|
168
126
|
version: '0'
|
169
127
|
requirements: []
|
170
128
|
rubyforge_project:
|
171
|
-
rubygems_version:
|
129
|
+
rubygems_version: 2.2.2
|
172
130
|
signing_key:
|
173
|
-
specification_version:
|
131
|
+
specification_version: 4
|
174
132
|
summary: Creating (yet another) page model gem based around making capybara tests
|
175
133
|
more stable with no need for waits
|
176
134
|
test_files:
|
177
135
|
- spec/element_factory_spec.rb
|
178
136
|
- spec/element_spec.rb
|
179
137
|
- spec/feature_spec.rb
|
138
|
+
- spec/includes_spec.rb
|
180
139
|
- spec/page_spec.rb
|
181
140
|
- spec/spec_helper.rb
|