selenium_page 0.0.1 → 0.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12822a93e2f8ef08fe5a7358acf425c52ada3763c63893e77775d0a072e2ca86
4
- data.tar.gz: 5f1f3387f5c5f6b199c8111d2241d8d8d5bb406c554bc92f99cbfc59f1f21c12
3
+ metadata.gz: ab847fdc76365d1ffd7c7fb59a4088b87cfaa5b66745051e644905ef836be483
4
+ data.tar.gz: 459b3d3fea8f2ebcad887c082742100d994fc0cceb66e319bd986f28bb9057dd
5
5
  SHA512:
6
- metadata.gz: 31953427254309675f5c4830d2f44a0ad62820f4073c0dc4f44c0db263861ba9b33dbee6df26490576d64b9d72fcc99477e0afe20fc6ca742ed5617f717309b7
7
- data.tar.gz: a931e2bba655b8dda23b03b73c2d8d8dc10df993709ee16dfefed804f18adcb6a19b4bc50eefbb067bcac79dc2b7703444637d72993baaa0692f7a4d302ea765
6
+ metadata.gz: 7110393c893d10dd01cfeef086b9e8565ce20fbff1b16fc2d4eeee7474352317bb3420e6f7d630f2326dd0a631fac14422d44dea238596e73153f07093aa04a5
7
+ data.tar.gz: fb9cf871cf2c2f8f468208acb16eaff57734e40946bb8fe79811cb8361fb5d2fc00212b44ad268d32d39b4d8c2ebc9468b51c0814b90c1637a741c3697c39cb0
data/README.md CHANGED
@@ -1,2 +1,35 @@
1
- # selenium_page
2
- This gem uses https://github.com/SeleniumHQ/selenium/tree/master/rb to implement the Page Object Pattern
1
+ # Selenium Page
2
+
3
+ This gem implement the Page Object Pattern on the top of :
4
+
5
+ https://github.com/SeleniumHQ/selenium/tree/master/rb
6
+
7
+ ## Testing
8
+
9
+ https://github.com/rspec/rspec
10
+
11
+ ### Command
12
+
13
+ bundle exec rspec
14
+
15
+ ## Code Style
16
+
17
+ https://github.com/bbatsov/rubocop
18
+
19
+ ### Command
20
+
21
+ bundle exec rubocop
22
+
23
+ ## Documentation (todo ..)
24
+
25
+ https://github.com/lsegal/yard
26
+
27
+ ### Command
28
+
29
+ Start a local server for documentation on : http://localhost:8808
30
+
31
+ bundle exec yard server -r 'lib/**/*.rb'
32
+
33
+ Or simply compile the documentation :
34
+
35
+ bundle exec yard doc 'lib/**/*.rb'
data/lib/selenium_page.rb CHANGED
@@ -1,9 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # external
4
+ require 'selenium-webdriver'
5
+
1
6
  # SeleniumPage
2
- class SeleniumPage
3
- def self.hi(language = 'english')
4
- translator = Translator.new(language)
5
- translator.hi
7
+ module SeleniumPage
8
+ require_relative 'selenium_page/errors'
9
+ require_relative 'selenium_page/page'
10
+
11
+ def self.configure_scheme_and_authority(scheme_and_authority)
12
+ unless scheme_and_authority.is_a? String
13
+ raise Errors::UnexpectedSchemeAndAuthority
14
+ end
15
+
16
+ @scheme_and_authority = scheme_and_authority
6
17
  end
7
- end
8
18
 
9
- require 'selenium_page/translator'
19
+ def self.scheme_and_authority
20
+ @scheme_and_authority
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Errors
5
+ class Errors
6
+ # UnexpectedSchemeAndAuthority
7
+ class UnexpectedSchemeAndAuthority < StandardError
8
+ def message
9
+ "Only 'String' are accepted"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Page
5
+ class Page
6
+ require_relative 'page/errors'
7
+
8
+ def self.configure_url(url)
9
+ raise Errors::UnexpectedUrl unless url.is_a? String
10
+
11
+ @url = url
12
+ end
13
+
14
+ def self.url
15
+ @url
16
+ end
17
+
18
+ def initialize(driver)
19
+ raise Errors::WrongDriver unless driver.is_a? Selenium::WebDriver::Driver
20
+
21
+ @page = driver
22
+ end
23
+
24
+ def url
25
+ self.class.url
26
+ end
27
+
28
+ def get
29
+ raise Errors::UrlNotSet unless self.class.url
30
+
31
+ scheme_and_authority = SeleniumPage.scheme_and_authority
32
+ raise Errors::SchemeAndAuthorityNotSet unless scheme_and_authority
33
+
34
+ @page.get scheme_and_authority + self.class.url
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SeleniumPage
4
+ # Page
5
+ class Page
6
+ # Errors
7
+ class Errors
8
+ # SchemeAndAuthorityNotSet
9
+ class SchemeAndAuthorityNotSet < StandardError
10
+ def message
11
+ 'Please set scheme_and_authority for SeleniumPage' \
12
+ " with '.configure_scheme_and_authority'"
13
+ end
14
+ end
15
+
16
+ # UnexpectedUrl
17
+ class UnexpectedUrl < StandardError
18
+ def message
19
+ "Only 'String' are accepted as page_url parameter"
20
+ end
21
+ end
22
+
23
+ # UrlNotSet
24
+ class UrlNotSet < StandardError
25
+ def message
26
+ "Please set url for the page with '.set_url'"
27
+ end
28
+ end
29
+
30
+ # WrongDriver
31
+ class WrongDriver < StandardError
32
+ def message
33
+ "Only 'Selenium::WebDriver::Driver' are accepted as driver parameter"
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium_page
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Massimiliano De Vivo
@@ -9,8 +9,149 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-03-16 00:00:00.000000000 Z
12
- dependencies: []
13
- description: A page object pattern gem for Selenium Webdriver!
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: selenium-webdriver
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.8.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.8.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.8.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.8.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: chromedriver-helper
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 1.2.0
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.2.0
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.2.0
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.2.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: pry-byebug
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 3.5.0
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.5.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 3.5.0
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 3.5.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 3.7.0
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.7.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.7.0
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 3.7.0
93
+ - !ruby/object:Gem::Dependency
94
+ name: rubocop
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 0.53.0
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.53.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.53.0
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.53.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: simplecov
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: 0.16.0
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.16.0
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: 0.16.0
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 0.16.0
133
+ - !ruby/object:Gem::Dependency
134
+ name: yard
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.9.0
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 0.9.0
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 0.9.0
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.0
153
+ description: This gems aims to simplify the organization of support files when using
154
+ the Selenium Webdriver gem directly
14
155
  email: maxtru2005@gmail.com
15
156
  executables: []
16
157
  extensions: []
@@ -19,8 +160,10 @@ files:
19
160
  - LICENSE.md
20
161
  - README.md
21
162
  - lib/selenium_page.rb
22
- - lib/selenium_page/translator.rb
23
- homepage: http://rubygems.org/gems/selenium_page
163
+ - lib/selenium_page/errors.rb
164
+ - lib/selenium_page/page.rb
165
+ - lib/selenium_page/page/errors.rb
166
+ homepage: https://github.com/mooikos/selenium_page
24
167
  licenses:
25
168
  - MIT
26
169
  metadata: {}
@@ -1,17 +0,0 @@
1
- module Translator
2
- # SeleniumPage::Translator
3
- class SeleniumPage
4
- def initialize(language)
5
- @language = language
6
- end
7
-
8
- def hi
9
- case @language
10
- when 'spanish'
11
- 'hola mundo'
12
- else
13
- 'hello world'
14
- end
15
- end
16
- end
17
- end