page_navigation 0.9 → 0.10
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/.gitignore +1 -0
- data/ChangeLog +4 -0
- data/lib/page_navigation.rb +23 -19
- data/lib/page_navigation/routes.rb +1 -1
- data/lib/page_navigation/version.rb +1 -1
- data/page_navigation.gemspec +8 -9
- data/spec/lib/page_navigation_spec.rb +153 -106
- metadata +19 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26e978842cccf0452d958bb6a2c7efd0fc095e57
|
4
|
+
data.tar.gz: 0c3c880153a5a05a23c8e6687d3942972c14b11d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b20c38f047c3d17a3fd4175b0eb5b5a6effa3f2f9459f04a0c5bbe977b87ca348b613a285f4d3be0a44d30686ad40fec39a226b6ffbcf1d4401809c3648d2ec9
|
7
|
+
data.tar.gz: 968fdf507da0d612bb1d7ed1cd4a2359bc39b10d7dd75e0f9868abf2b89ebbec61ccd030f2b8068991c2aa03be0ca48dece92dfe22ff132f771d577b5c061942
|
data/.gitignore
CHANGED
data/ChangeLog
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
=== Version 0.10 / 2016-10-18
|
2
|
+
* Improved error message when navigation methods are undefined
|
3
|
+
* Added optional 'visit' argument to navigate_to and navigate_all to visit first page (Thanks sciros)
|
4
|
+
|
1
5
|
=== Version 0.9 / 2013-05-03
|
2
6
|
* Added :from entry to navigate_to method call
|
3
7
|
|
data/lib/page_navigation.rb
CHANGED
@@ -7,7 +7,7 @@ require 'data_magic'
|
|
7
7
|
# that implement a PageObject like pattern.
|
8
8
|
#
|
9
9
|
# In order to use these two methods you must define routes. A route
|
10
|
-
# is
|
10
|
+
# is simply an array of Class/Method calls and can contain parameters
|
11
11
|
# that can be passed to the methods. Here is an example:
|
12
12
|
#
|
13
13
|
# @example Example routes defined in env.rb
|
@@ -47,22 +47,24 @@ module PageNavigation
|
|
47
47
|
# page.navigate_to(PageThree) # will use the default path
|
48
48
|
# page.navigate_to(PageThree, :using => :another_route)
|
49
49
|
#
|
50
|
-
# @param [PageObject]
|
51
|
-
# @param [Hash] a hash that contains
|
50
|
+
# @param [PageObject] page_cls a class that implements the PageObject pattern.
|
51
|
+
# @param [Hash] how a hash that contains two elements. One with the key
|
52
52
|
# :using. This will be used to lookup the route. It has a
|
53
|
-
# default value of :default.
|
54
|
-
#
|
53
|
+
# default value of :default. The other is with the key :visit. This specifies
|
54
|
+
# whether to explicitly visit the first page. It has a default value of false.
|
55
|
+
# @param [block] block an optional block to be called
|
55
56
|
# @return [PageObject] the page you are navigating to
|
56
57
|
#
|
57
|
-
def navigate_to(page_cls, how = {:using => :default}, &block)
|
58
|
+
def navigate_to(page_cls, how = {:using => :default, :visit => false}, &block)
|
58
59
|
how[:using] = :default unless how[:using]
|
60
|
+
how[:visit] = false unless how[:visit]
|
59
61
|
path = path_for how
|
60
62
|
to_index = find_index_for(path, page_cls)-1
|
61
63
|
if to_index == -1
|
62
64
|
return on(page_cls, &block)
|
63
65
|
else
|
64
66
|
start = how[:from] ? path.find_index { |entry| entry[0] == how[:from] } : 0
|
65
|
-
navigate_through_pages(path[start..to_index])
|
67
|
+
navigate_through_pages(path[start..to_index], how[:visit])
|
66
68
|
end
|
67
69
|
on(page_cls, &block)
|
68
70
|
end
|
@@ -71,11 +73,11 @@ module PageNavigation
|
|
71
73
|
# Same as navigate_to except it will start at the @current_page
|
72
74
|
# instead the beginning of the path.
|
73
75
|
#
|
74
|
-
# @param [PageObject]
|
75
|
-
# @param [Hash] a hash that contains an element with the key
|
76
|
+
# @param [PageObject] page_cls a class that implements the PageObject pattern.
|
77
|
+
# @param [Hash] how a hash that contains an element with the key
|
76
78
|
# :using. This will be used to lookup the route. It has a
|
77
79
|
# default value of :default.
|
78
|
-
# @param [block]
|
80
|
+
# @param [block] block an optional block to be called
|
79
81
|
# @return [PageObject] the page you are navigating to
|
80
82
|
#
|
81
83
|
def continue_navigation_to(page_cls, how = {:using => :default}, &block)
|
@@ -83,9 +85,9 @@ module PageNavigation
|
|
83
85
|
from_index = find_index_for(path, @current_page.class)
|
84
86
|
to_index = find_index_for(path, page_cls)-1
|
85
87
|
if from_index == to_index
|
86
|
-
navigate_through_pages([path[from_index]])
|
88
|
+
navigate_through_pages([path[from_index]], false)
|
87
89
|
else
|
88
|
-
navigate_through_pages(path[from_index..to_index])
|
90
|
+
navigate_through_pages(path[from_index..to_index], false)
|
89
91
|
end
|
90
92
|
on(page_cls, &block)
|
91
93
|
end
|
@@ -101,13 +103,14 @@ module PageNavigation
|
|
101
103
|
# page.navigate_all # will use the default path
|
102
104
|
# page.navigate_all(:using => :another_route)
|
103
105
|
#
|
104
|
-
# @param [Hash] a hash that contains
|
106
|
+
# @param [Hash] how a hash that contains two elements. One with the key
|
105
107
|
# :using. This will be used to lookup the route. It has a
|
106
|
-
# default value of :default.
|
108
|
+
# default value of :default. The other is with the key :visit. This specifies
|
109
|
+
# whether to explicitly visit the first page. It has a default value of false.
|
107
110
|
#
|
108
|
-
def navigate_all(how = {:using => :default})
|
111
|
+
def navigate_all(how = {:using => :default, :visit => false})
|
109
112
|
path = path_for how
|
110
|
-
navigate_through_pages(path[0..-1])
|
113
|
+
navigate_through_pages(path[0..-1], how[:visit])
|
111
114
|
end
|
112
115
|
|
113
116
|
private
|
@@ -122,10 +125,11 @@ module PageNavigation
|
|
122
125
|
path
|
123
126
|
end
|
124
127
|
|
125
|
-
def navigate_through_pages(pages)
|
128
|
+
def navigate_through_pages(pages, visit)
|
126
129
|
pages.each do |cls, method, *args|
|
127
|
-
page = on(cls)
|
128
|
-
|
130
|
+
page = visit ? visit(cls) : on(cls)
|
131
|
+
visit = false # visit once, for just the first page
|
132
|
+
fail("Navigation method '#{method}' not defined on #{cls}.") unless page.respond_to? method
|
129
133
|
page.send method unless args
|
130
134
|
page.send method, *args if args
|
131
135
|
end
|
data/page_navigation.gemspec
CHANGED
@@ -4,24 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'page_navigation/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
7
|
+
gem.name = 'page_navigation'
|
8
8
|
gem.version = PageNavigation::VERSION
|
9
9
|
gem.platform = Gem::Platform::RUBY
|
10
|
-
gem.authors = [
|
11
|
-
gem.email = [
|
12
|
-
gem.homepage =
|
10
|
+
gem.authors = ['Jeffrey S. Morgan','Dmitry Sharkov']
|
11
|
+
gem.email = ['jeff.morgan@leandog.com']
|
12
|
+
gem.homepage = 'http://github.com/cheezy/page_navigation'
|
13
13
|
gem.description = %q{Provides basic navigation through a collection of items that use the PageObject pattern.}
|
14
14
|
gem.summary = %q{Provides basic navigation through a collection of items that use the PageObject pattern.}
|
15
15
|
|
16
|
-
gem.rubyforge_project =
|
16
|
+
gem.rubyforge_project = 'page_navigation'
|
17
17
|
|
18
18
|
gem.files = `git ls-files`.split($/)
|
19
19
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
20
20
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
21
|
-
gem.require_paths = [
|
21
|
+
gem.require_paths = ['lib']
|
22
22
|
|
23
|
-
gem.add_dependency 'data_magic', '>= 0.
|
23
|
+
gem.add_dependency 'data_magic', '>= 0.22'
|
24
24
|
|
25
|
-
gem.add_development_dependency 'rspec', '>=
|
26
|
-
|
25
|
+
gem.add_development_dependency 'rspec', '>= 3.4.0'
|
27
26
|
end
|
@@ -1,22 +1,28 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
class
|
3
|
+
class FirstPage
|
4
4
|
end
|
5
5
|
|
6
|
-
class
|
6
|
+
class MiddlePage
|
7
7
|
end
|
8
8
|
|
9
|
-
class
|
9
|
+
class LastPage
|
10
10
|
end
|
11
11
|
|
12
12
|
class TestNavigator
|
13
13
|
include PageNavigation
|
14
14
|
attr_accessor :current_page
|
15
15
|
|
16
|
-
def on(cls)
|
16
|
+
def on(cls) #placeholder for PageFactory's on_page (alias 'on')
|
17
17
|
cls.new
|
18
18
|
end
|
19
19
|
|
20
|
+
def visit(cls) #placeholder for PageFactory's visit_page (alias 'visit')
|
21
|
+
page_instance = cls.new
|
22
|
+
page_instance.visit
|
23
|
+
page_instance
|
24
|
+
end
|
25
|
+
|
20
26
|
def class_from_string(str)
|
21
27
|
str.split('::').inject(Object) do |mod, class_name|
|
22
28
|
mod.const_get(class_name)
|
@@ -27,137 +33,178 @@ end
|
|
27
33
|
describe PageNavigation do
|
28
34
|
before(:each) do
|
29
35
|
@navigator = TestNavigator.new
|
30
|
-
DataMagic.
|
36
|
+
allow(DataMagic).to receive(:load)
|
31
37
|
end
|
32
38
|
|
33
|
-
it
|
34
|
-
expect { TestNavigator.routes = {:another => []} }.to raise_error
|
39
|
+
it 'should raise an error when you do not provide a default route' do
|
40
|
+
expect { TestNavigator.routes = {:another => []} }.to raise_error 'You must provide a :default route'
|
35
41
|
end
|
36
42
|
|
37
|
-
it
|
38
|
-
routes =
|
43
|
+
it 'should store the routes' do
|
44
|
+
routes = %w(a b c)
|
39
45
|
TestNavigator.routes = {:default => routes}
|
40
|
-
TestNavigator.routes[:default].
|
46
|
+
expect(TestNavigator.routes[:default]).to be routes
|
41
47
|
end
|
42
48
|
|
43
|
-
it
|
49
|
+
it 'should store route data' do
|
44
50
|
TestNavigator.route_data = {:default => :blah}
|
45
|
-
TestNavigator.route_data.
|
51
|
+
expect(TestNavigator.route_data).to eq ({:default => :blah})
|
46
52
|
end
|
47
53
|
|
48
|
-
it
|
49
|
-
pages = [[
|
54
|
+
it 'should navigate to a page calling the default methods' do
|
55
|
+
pages = [[FirstPage, :a_method], [MiddlePage, :b_method]]
|
50
56
|
TestNavigator.routes = {:default => pages}
|
51
|
-
fake_page = double('
|
52
|
-
|
53
|
-
fake_page.
|
54
|
-
@navigator.navigate_to(
|
57
|
+
fake_page = double('middle_page')
|
58
|
+
expect(FirstPage).to receive(:new).and_return(fake_page)
|
59
|
+
expect(fake_page).to receive(:a_method)
|
60
|
+
expect(@navigator.navigate_to(MiddlePage).class).to be MiddlePage
|
55
61
|
end
|
56
62
|
|
57
|
-
it
|
58
|
-
pages = [[
|
63
|
+
it 'should load the DataMagic file when specified' do
|
64
|
+
pages = [[FirstPage, :a_method], [MiddlePage, :b_method]]
|
59
65
|
TestNavigator.routes = {:default => pages}
|
60
66
|
TestNavigator.route_data = {:default => :dm_file}
|
61
|
-
fake_page = double('
|
62
|
-
|
63
|
-
fake_page.
|
64
|
-
DataMagic.
|
65
|
-
@navigator.navigate_to(
|
67
|
+
fake_page = double('middle_page')
|
68
|
+
expect(FirstPage).to receive(:new).and_return(fake_page)
|
69
|
+
expect(fake_page).to receive(:a_method)
|
70
|
+
expect(DataMagic).to receive(:load).with('dm_file.yml')
|
71
|
+
expect(@navigator.navigate_to(MiddlePage).class).to be MiddlePage
|
66
72
|
end
|
67
73
|
|
68
|
-
it
|
69
|
-
pages = [[
|
74
|
+
it 'should pass parameters to methods when navigating' do
|
75
|
+
pages = [[FirstPage, :a_method, 'blah'], [MiddlePage, :b_method]]
|
70
76
|
TestNavigator.routes = {:default => pages}
|
71
|
-
fake_page = double('
|
72
|
-
|
73
|
-
fake_page.
|
74
|
-
@navigator.navigate_to(
|
77
|
+
fake_page = double('middle_page')
|
78
|
+
expect(FirstPage).to receive(:new).and_return(fake_page)
|
79
|
+
expect(fake_page).to receive(:a_method).with('blah')
|
80
|
+
expect(@navigator.navigate_to(MiddlePage).class).to be MiddlePage
|
75
81
|
end
|
76
82
|
|
77
|
-
it
|
83
|
+
it 'should fail when it does not find a proper route' do
|
78
84
|
TestNavigator.routes = {:default => ['a'], :another => ['b']}
|
79
|
-
expect { @navigator.navigate_to(
|
85
|
+
expect { @navigator.navigate_to(MiddlePage, :using => :no_route) }.to raise_error
|
80
86
|
end
|
81
87
|
|
82
|
-
it
|
88
|
+
it 'should fail when no default method specified' do
|
83
89
|
TestNavigator.routes = {
|
84
|
-
:default => [[
|
90
|
+
:default => [[FirstPage, :a_method], [MiddlePage, :b_method]]
|
85
91
|
}
|
86
|
-
fake_page = double('
|
87
|
-
|
88
|
-
fake_page.
|
89
|
-
expect { @navigator.navigate_to(
|
92
|
+
fake_page = double('middle_page')
|
93
|
+
expect(FirstPage).to receive(:new).and_return(fake_page)
|
94
|
+
expect(fake_page).to receive(:respond_to?).with(:a_method).and_return(false)
|
95
|
+
expect { @navigator.navigate_to(MiddlePage) }.to raise_error
|
90
96
|
end
|
91
97
|
|
92
|
-
it
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
a_page = AnotherPage.new
|
122
|
-
AnotherPage.should_receive(:new).and_return(a_page)
|
123
|
-
a_page.should_receive(:respond_to?).with(:b_method).and_return(true)
|
124
|
-
a_page.should_receive(:b_method)
|
125
|
-
@navigator.continue_navigation_to(YetAnotherPage).class.should == YetAnotherPage
|
126
|
-
end
|
127
|
-
|
128
|
-
it "should know how to navigate an entire route including the last page" do
|
129
|
-
TestNavigator.routes = {
|
130
|
-
:default => [[FactoryTestPage, :a_method],
|
131
|
-
[AnotherPage, :b_method],
|
132
|
-
[YetAnotherPage, :c_method]]
|
133
|
-
}
|
134
|
-
f_page = FactoryTestPage.new
|
135
|
-
a_page = AnotherPage.new
|
136
|
-
y_page = YetAnotherPage.new
|
137
|
-
FactoryTestPage.should_receive(:new).and_return(f_page)
|
138
|
-
f_page.should_receive(:respond_to?).with(:a_method).and_return(true)
|
139
|
-
f_page.should_receive(:a_method)
|
140
|
-
AnotherPage.should_receive(:new).and_return(a_page)
|
141
|
-
a_page.should_receive(:respond_to?).with(:b_method).and_return(true)
|
142
|
-
a_page.should_receive(:b_method)
|
143
|
-
YetAnotherPage.should_receive(:new).and_return(y_page)
|
144
|
-
y_page.should_receive(:respond_to?).with(:c_method).and_return(true)
|
145
|
-
y_page.should_receive(:c_method)
|
98
|
+
it 'should know how to continue routing from a location' do
|
99
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
100
|
+
|
101
|
+
@navigator.current_page = FirstPage.new
|
102
|
+
|
103
|
+
expect(first_page).to receive(:a_method)
|
104
|
+
expect(middle_page).to receive(:b_method)
|
105
|
+
|
106
|
+
expect(@navigator.continue_navigation_to(LastPage).class).to be LastPage
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should know how to continue routing from a location that is one page from the end' do
|
110
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
111
|
+
|
112
|
+
@navigator.current_page = MiddlePage.new
|
113
|
+
|
114
|
+
expect(first_page).not_to receive(:a_method)
|
115
|
+
expect(middle_page).to receive(:b_method)
|
116
|
+
|
117
|
+
expect(@navigator.continue_navigation_to(LastPage).class).to be LastPage
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should know how to navigate an entire route including the last page' do
|
121
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
122
|
+
|
123
|
+
expect(first_page).to receive(:a_method)
|
124
|
+
expect(middle_page).to receive(:b_method)
|
125
|
+
expect(last_page).to receive(:c_method)
|
126
|
+
|
146
127
|
@navigator.navigate_all
|
147
128
|
end
|
148
129
|
|
149
|
-
it
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
130
|
+
it 'should be able to start in the middle of a route and proceed' do
|
131
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
132
|
+
|
133
|
+
expect(first_page).not_to receive(:a_method)
|
134
|
+
expect(middle_page).to receive(:b_method)
|
135
|
+
|
136
|
+
@navigator.navigate_to(LastPage, :from => MiddlePage)
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should visit page at start of route given visit param set to true' do
|
140
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
141
|
+
|
142
|
+
expect(first_page).to receive(:visit)
|
143
|
+
expect(first_page).to receive(:a_method)
|
144
|
+
expect(middle_page).to receive(:b_method)
|
145
|
+
expect(middle_page).not_to receive(:visit)
|
146
|
+
|
147
|
+
@navigator.navigate_to(LastPage, visit: true)
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'should not visit page at start of route given visit param set to false (explicit)' do
|
151
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
152
|
+
|
153
|
+
expect(first_page).not_to receive(:visit)
|
154
|
+
expect(first_page).to receive(:a_method)
|
155
|
+
expect(middle_page).to receive(:b_method)
|
156
|
+
|
157
|
+
@navigator.navigate_to(LastPage, visit: false)
|
162
158
|
end
|
159
|
+
|
160
|
+
it 'should not visit page at start of route given visit param set to false (default)' do
|
161
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
162
|
+
|
163
|
+
expect(first_page).not_to receive(:visit)
|
164
|
+
expect(first_page).to receive(:a_method)
|
165
|
+
expect(middle_page).to receive(:b_method)
|
166
|
+
|
167
|
+
@navigator.navigate_to(LastPage)
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'should handle specification of both using and visit params' do
|
171
|
+
first_page, middle_page, last_page = mock_common_method_calls
|
172
|
+
|
173
|
+
expect(first_page).to receive(:respond_to?).with(:x_method).at_least(:once).and_return(true)
|
174
|
+
expect(first_page).to receive(:visit)
|
175
|
+
expect(first_page).to receive(:x_method)
|
176
|
+
expect(middle_page).to receive(:respond_to?).with(:y_method).at_least(:once).and_return(true)
|
177
|
+
expect(middle_page).to receive(:y_method)
|
178
|
+
expect(middle_page).not_to receive(:visit)
|
179
|
+
|
180
|
+
@navigator.navigate_to(LastPage, visit: true, using: :alt)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
def mock_common_method_calls
|
185
|
+
TestNavigator.routes = {
|
186
|
+
:default => [[FirstPage, :a_method],
|
187
|
+
[MiddlePage, :b_method],
|
188
|
+
[LastPage, :c_method]],
|
189
|
+
:alt => [[FirstPage, :x_method],
|
190
|
+
[MiddlePage, :y_method],
|
191
|
+
[LastPage, :z_method]]
|
192
|
+
}
|
193
|
+
|
194
|
+
first_page = FirstPage.new
|
195
|
+
allow(FirstPage).to receive(:new).and_return(first_page)
|
196
|
+
allow(first_page).to receive(:respond_to?).with(:visit).and_return(true)
|
197
|
+
allow(first_page).to receive(:respond_to?).with(:a_method).and_return(true)
|
198
|
+
|
199
|
+
middle_page = MiddlePage.new
|
200
|
+
allow(MiddlePage).to receive(:new).and_return(middle_page)
|
201
|
+
allow(middle_page).to receive(:respond_to?).with(:visit).and_return(true)
|
202
|
+
allow(middle_page).to receive(:respond_to?).with(:b_method).and_return(true)
|
203
|
+
|
204
|
+
last_page = LastPage.new
|
205
|
+
allow(LastPage).to receive(:new).and_return(last_page)
|
206
|
+
allow(last_page).to receive(:respond_to?).with(:visit).and_return(true)
|
207
|
+
allow(last_page).to receive(:respond_to?).with(:c_method).and_return(true)
|
208
|
+
|
209
|
+
return first_page, middle_page, last_page
|
163
210
|
end
|
metadata
CHANGED
@@ -1,43 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_navigation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.10'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey S. Morgan
|
8
|
+
- Dmitry Sharkov
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2016-10-18 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: data_magic
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- -
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
20
|
+
version: '0.22'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- -
|
25
|
+
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
27
|
+
version: '0.22'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: rspec
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- -
|
32
|
+
- - ">="
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
+
version: 3.4.0
|
34
35
|
type: :development
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
|
-
- -
|
39
|
+
- - ">="
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
+
version: 3.4.0
|
41
42
|
description: Provides basic navigation through a collection of items that use the
|
42
43
|
PageObject pattern.
|
43
44
|
email:
|
@@ -46,10 +47,10 @@ executables: []
|
|
46
47
|
extensions: []
|
47
48
|
extra_rdoc_files: []
|
48
49
|
files:
|
49
|
-
- .gitignore
|
50
|
-
- .rspec
|
51
|
-
- .ruby-gemset
|
52
|
-
- .ruby-version
|
50
|
+
- ".gitignore"
|
51
|
+
- ".rspec"
|
52
|
+
- ".ruby-gemset"
|
53
|
+
- ".ruby-version"
|
53
54
|
- ChangeLog
|
54
55
|
- Gemfile
|
55
56
|
- Guardfile
|
@@ -71,17 +72,17 @@ require_paths:
|
|
71
72
|
- lib
|
72
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
74
|
requirements:
|
74
|
-
- -
|
75
|
+
- - ">="
|
75
76
|
- !ruby/object:Gem::Version
|
76
77
|
version: '0'
|
77
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
79
|
requirements:
|
79
|
-
- -
|
80
|
+
- - ">="
|
80
81
|
- !ruby/object:Gem::Version
|
81
82
|
version: '0'
|
82
83
|
requirements: []
|
83
|
-
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
84
|
+
rubyforge_project: page_navigation
|
85
|
+
rubygems_version: 2.5.1
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: Provides basic navigation through a collection of items that use the PageObject
|