gamera 0.1.6 → 0.1.8
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/gamera.rb +1 -0
- data/lib/gamera/builder.rb +2 -2
- data/lib/gamera/builders/sequel_fixture_builder.rb +13 -9
- data/lib/gamera/general_proxy.rb +1 -1
- data/lib/gamera/modules/visitable.rb +14 -7
- data/lib/gamera/page.rb +0 -1
- data/lib/gamera/page_sections/form.rb +6 -2
- data/lib/gamera/page_sections/table.rb +11 -14
- data/lib/gamera/utils/path_joiner.rb +1 -1
- data/lib/pry_setup.rb +0 -1
- metadata +65 -73
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46fd7e012d52627a9b81e1ae757e3a62bc56e253
|
4
|
+
data.tar.gz: 2dd74c542d2244970ea4e0bc8e35fd48a0617746
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9113078fa362eb47234230f5f319703758bb925077626def5e4a6a148bfb199b800c406bd17b22b59626ff0dea24d643e8123ab34807b5bfe9cc4fd5ad7ac8e
|
7
|
+
data.tar.gz: '08c7b631a05c449b9e2ee2a6b8c960e7481e0ba6c9c7a792909c1329033e02804da0e613873e6ee1c44b461217d83ddbd14b74cec7a6910f72be94f8f3174c64'
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/gamera.rb
CHANGED
data/lib/gamera/builder.rb
CHANGED
@@ -107,7 +107,7 @@ module Gamera
|
|
107
107
|
# b.build
|
108
108
|
# #=> User(name: "Bob", bday: #<Date: Sat, 09 Dec 1989>)
|
109
109
|
def self.create_with(spec, &block)
|
110
|
-
struct = Struct.new(*
|
110
|
+
struct = Struct.new(*spec.keys) do
|
111
111
|
def initialize(options = {})
|
112
112
|
super
|
113
113
|
options.each { |opt, value| self[opt] = value }
|
@@ -230,7 +230,7 @@ module Gamera
|
|
230
230
|
#
|
231
231
|
# @note Don't call this method directly, use +#result+ instead.
|
232
232
|
def build
|
233
|
-
|
233
|
+
raise NotImplementedError
|
234
234
|
end
|
235
235
|
|
236
236
|
def_delegator :self, :build, :call
|
@@ -60,9 +60,9 @@ module Gamera
|
|
60
60
|
#
|
61
61
|
# Gamera::Builders::SequelFixtureBuilder.new.build
|
62
62
|
class SequelFixtureBuilder < Gamera::Builder.with_options(:database_config, :fixture_directory, :database_cleaner_options)
|
63
|
-
DEFAULT_DATABASE_CONFIG = './config/database.yml'
|
64
|
-
DEFAULT_SPEC_FIXTURE_DIRECTORY = './spec/fixtures'
|
65
|
-
DEFAULT_TEST_FIXTURE_DIRECTORY = './test/fixtures'
|
63
|
+
DEFAULT_DATABASE_CONFIG = './config/database.yml'.freeze
|
64
|
+
DEFAULT_SPEC_FIXTURE_DIRECTORY = './spec/fixtures'.freeze
|
65
|
+
DEFAULT_TEST_FIXTURE_DIRECTORY = './test/fixtures'.freeze
|
66
66
|
|
67
67
|
# Truncates the database and imports the fixtures.
|
68
68
|
# Returns a +Sequel::Fixture+ object, containing
|
@@ -99,7 +99,7 @@ module Gamera
|
|
99
99
|
@path_to_fixtures ||= begin
|
100
100
|
if fixture_directory && !fixture_directory.empty?
|
101
101
|
unless File.exist?(fixture_directory)
|
102
|
-
|
102
|
+
raise DatabaseNotConfigured, "Invalid fixture directory #{fixture_directory}"
|
103
103
|
end
|
104
104
|
fixture_directory
|
105
105
|
elsif File.exist?(DEFAULT_SPEC_FIXTURE_DIRECTORY)
|
@@ -107,7 +107,7 @@ module Gamera
|
|
107
107
|
elsif File.exist?(DEFAULT_TEST_FIXTURE_DIRECTORY)
|
108
108
|
DEFAULT_TEST_FIXTURE_DIRECTORY
|
109
109
|
else
|
110
|
-
|
110
|
+
raise DatabaseNotConfigured, 'Unable to find fixtures to load'
|
111
111
|
end
|
112
112
|
end
|
113
113
|
end
|
@@ -124,7 +124,7 @@ module Gamera
|
|
124
124
|
if config
|
125
125
|
Sequel.connect(config)
|
126
126
|
else
|
127
|
-
|
127
|
+
raise DatabaseNotConfigured, 'Unable to connect to database'
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
@@ -151,7 +151,11 @@ module Gamera
|
|
151
151
|
def self.database_config_from_file(config = nil)
|
152
152
|
return nil unless config.is_a?(String) && File.exist?(config)
|
153
153
|
|
154
|
-
db_config =
|
154
|
+
db_config = begin
|
155
|
+
YAML.load_file(config)
|
156
|
+
rescue
|
157
|
+
nil
|
158
|
+
end
|
155
159
|
return nil unless db_config
|
156
160
|
|
157
161
|
database_config_from_hash(db_config)
|
@@ -209,11 +213,11 @@ module Gamera
|
|
209
213
|
# => username
|
210
214
|
def self.verify_database_config(db_config)
|
211
215
|
db_config ||= {}
|
212
|
-
missing_fields = [
|
216
|
+
missing_fields = %i[adapter database username].reject do |field|
|
213
217
|
db_config.key?(field) || db_config.key?(field.to_s)
|
214
218
|
end
|
215
219
|
unless missing_fields.empty?
|
216
|
-
|
220
|
+
raise DatabaseNotConfigured, "Unable to connect to database: Missing config for #{missing_fields.join(', ')}"
|
217
221
|
end
|
218
222
|
end
|
219
223
|
|
data/lib/gamera/general_proxy.rb
CHANGED
@@ -4,14 +4,21 @@ module Gamera
|
|
4
4
|
|
5
5
|
include Capybara::DSL
|
6
6
|
|
7
|
+
# Define CAPYBARA_DEFAULT_MAX_WAIT_TIME differently, depending on the version of Capybara.
|
8
|
+
CAPYBARA_DEFAULT_MAX_WAIT_TIME = if Gem::Version.new(Capybara::VERSION) >= Gem::Version.new('2.5.0')
|
9
|
+
Capybara.default_max_wait_time
|
10
|
+
else
|
11
|
+
Capybara.default_wait_time
|
12
|
+
end
|
13
|
+
|
7
14
|
# Open the page url in the browser specified in your Capybara configuration
|
8
15
|
#
|
9
16
|
# @param fail_on_redirect [Boolean] Whether to fail if the site redirects to a page that does not match the url_matcher regex
|
10
17
|
# @raise [WrongPageVisited] if the site redirects to URL that doesn't match the url_matcher regex and fail_on_redirect is true
|
11
|
-
def visit(fail_on_redirect
|
18
|
+
def visit(fail_on_redirect: true)
|
12
19
|
super(url)
|
13
20
|
if fail_on_redirect
|
14
|
-
|
21
|
+
raise Gamera::WrongPageVisited, "Expected URL '#{url}', got '#{page.current_url}'" unless displayed?
|
15
22
|
end
|
16
23
|
end
|
17
24
|
|
@@ -20,8 +27,8 @@ module Gamera
|
|
20
27
|
# @param wait_time_seconds [Integer] How long to wait for the correct page to load
|
21
28
|
# @return [Boolean] true if the url loaded in the browser matches the url_matcher pattern
|
22
29
|
# @raise [NoUrlMatcherForPage] if there's no url_matcher for this page
|
23
|
-
def displayed?(wait_time_seconds =
|
24
|
-
|
30
|
+
def displayed?(wait_time_seconds = CAPYBARA_DEFAULT_MAX_WAIT_TIME)
|
31
|
+
raise Gamera::NoUrlMatcherForPage if url_matcher.nil?
|
25
32
|
start_time = Time.now
|
26
33
|
loop do
|
27
34
|
return true if page.current_url.chomp('/') =~ url_matcher
|
@@ -38,10 +45,10 @@ module Gamera
|
|
38
45
|
# @param retries [Integer] Number of times to reload the page before giving up
|
39
46
|
# @param allowed_errors [Array] Array of errors that trigger a refresh, e.g., if an ExpectationNotMetError was raised during an acceptance test
|
40
47
|
# @param block [Block] The block to execute after each refresh
|
41
|
-
def with_refreshes(retries, allowed_errors = [RSpec::Expectations::ExpectationNotMetError]
|
48
|
+
def with_refreshes(retries, allowed_errors = [RSpec::Expectations::ExpectationNotMetError])
|
42
49
|
retries_left ||= retries
|
43
50
|
visit
|
44
|
-
|
51
|
+
yield(retries_left)
|
45
52
|
rescue *allowed_errors => e
|
46
53
|
retries_left -= 1
|
47
54
|
retry if retries_left >= 0
|
@@ -50,7 +57,7 @@ module Gamera
|
|
50
57
|
|
51
58
|
# A reminder to implement a url method when using this module.
|
52
59
|
def url
|
53
|
-
|
60
|
+
raise NotImplementedError, 'To use the Visitable module, you must implement a url method'
|
54
61
|
end
|
55
62
|
end
|
56
63
|
end
|
data/lib/gamera/page.rb
CHANGED
@@ -93,7 +93,11 @@ module Gamera
|
|
93
93
|
def fill_in_form(fields)
|
94
94
|
fields.each do |field, value|
|
95
95
|
f = send("#{field}_field")
|
96
|
-
f.
|
96
|
+
if f.tag_name == 'select'
|
97
|
+
Array(value).each { |val| f.select(val) }
|
98
|
+
else
|
99
|
+
f.set(value)
|
100
|
+
end
|
97
101
|
end
|
98
102
|
end
|
99
103
|
|
@@ -105,7 +109,7 @@ module Gamera
|
|
105
109
|
def define_field_methods
|
106
110
|
if fields.is_a?(Array)
|
107
111
|
fields.each do |field_label|
|
108
|
-
field = field_label.downcase.
|
112
|
+
field = field_label.downcase.tr(' ', '_').gsub(/\W/, '').to_sym
|
109
113
|
field_method_name = define_field_name(field)
|
110
114
|
define_field_method(field_method_name, field_label)
|
111
115
|
end
|
@@ -85,7 +85,7 @@ module Gamera
|
|
85
85
|
class Table < DelegateClass(Capybara::Node::Element)
|
86
86
|
include Capybara::DSL
|
87
87
|
|
88
|
-
|
88
|
+
# @param headers [Array] An array of the strings from the tables header row
|
89
89
|
# @param row_name [String] A label that can be used to create more readable versions of general row methods
|
90
90
|
# @param plural_row_name [String] Plural form of [row_name]
|
91
91
|
# @param name_column [String] The column heading for the column which contains each row's name
|
@@ -97,11 +97,10 @@ module Gamera
|
|
97
97
|
row_name:,
|
98
98
|
plural_row_name: nil,
|
99
99
|
name_column: 'Name',
|
100
|
-
row_css: 'tr + tr', # all tr
|
100
|
+
row_css: 'tr + tr', # all <tr>s except the first one (which is almost always a table header)
|
101
101
|
row_class: TableRow,
|
102
102
|
row_editor: RowEditor.new,
|
103
|
-
row_deleter: RowDeleter.new
|
104
|
-
)
|
103
|
+
row_deleter: RowDeleter.new)
|
105
104
|
@row_css = row_css
|
106
105
|
@headers = headers
|
107
106
|
@row_class = row_class
|
@@ -109,7 +108,7 @@ module Gamera
|
|
109
108
|
@row_deleter = row_deleter
|
110
109
|
@row_name = row_name
|
111
110
|
@plural_row_name = plural_row_name
|
112
|
-
@name_column = name_column.downcase.
|
111
|
+
@name_column = name_column.downcase.tr(' ', '_').gsub(/[^a-z0-9_]+/, '')
|
113
112
|
|
114
113
|
add_custom_function_names
|
115
114
|
end
|
@@ -143,11 +142,11 @@ module Gamera
|
|
143
142
|
page.has_selector?(row_css, text: name)
|
144
143
|
end
|
145
144
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
145
|
+
# Checks for the absence of a row with the given name
|
146
|
+
#
|
147
|
+
# @param name [String] The name to look for in the table's specified name column.
|
148
|
+
# @return [Boolean] False if a row with the specified name is found, true
|
149
|
+
# otherwise
|
151
150
|
def has_no_row?(name)
|
152
151
|
page.has_no_selector?(row_css, text: name)
|
153
152
|
end
|
@@ -188,7 +187,7 @@ module Gamera
|
|
188
187
|
private
|
189
188
|
|
190
189
|
attr_reader :headers, :row_css, :row_name, :name_column, :row_class,
|
191
|
-
|
190
|
+
:row_editor, :row_deleter
|
192
191
|
|
193
192
|
def add_custom_function_names
|
194
193
|
row_name = @row_name # The attr_reader wasn't working here
|
@@ -214,8 +213,6 @@ module Gamera
|
|
214
213
|
alias_method row_name, :row_named
|
215
214
|
end
|
216
215
|
end
|
217
|
-
|
218
|
-
|
219
216
|
end
|
220
217
|
|
221
218
|
# Default class used to represent a row in a table
|
@@ -226,7 +223,7 @@ module Gamera
|
|
226
223
|
super(row_css)
|
227
224
|
|
228
225
|
headers.each_with_index do |header, i|
|
229
|
-
cell_name = header.downcase.
|
226
|
+
cell_name = header.downcase.tr(' ', '_').gsub(/[^a-z0-9_]+/, '')
|
230
227
|
self.class.send(:define_method, cell_name) do
|
231
228
|
find("td:nth-child(#{i + 1})").text
|
232
229
|
end
|
@@ -7,7 +7,7 @@ module Gamera
|
|
7
7
|
# @param elements [String] duck types
|
8
8
|
# @return [String] of elements joined by single "/" characters.
|
9
9
|
def self.path_join(*elements)
|
10
|
-
"/#{elements.join('/')}".gsub(%r
|
10
|
+
"/#{elements.join('/')}".gsub(%r{//+}, '/')
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
data/lib/pry_setup.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gamera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dobbs
|
@@ -14,66 +14,60 @@ cert_chain:
|
|
14
14
|
-----BEGIN CERTIFICATE-----
|
15
15
|
MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQ8wDQYDVQQDDAZnbGVu
|
16
16
|
YWIxHTAbBgoJkiaJk/IsZAEZFg1rb2Fuc29sdXRpb25zMRMwEQYKCZImiZPyLGQB
|
17
|
-
|
17
|
+
GRYDbmV0MB4XDTE3MDgxMjE4MTAxNloXDTE4MDgxMjE4MTAxNlowRTEPMA0GA1UE
|
18
18
|
AwwGZ2xlbmFiMR0wGwYKCZImiZPyLGQBGRYNa29hbnNvbHV0aW9uczETMBEGCgmS
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
JomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKpK
|
20
|
+
IVFAOPEsxJNKno2jGOhUeaCugMKQHv2q/LlwDcqxyGdBJHzsg06zcm/ymkJeV+u/
|
21
|
+
t3hJC72oQ3XMvnk2miKVv0Oj3ZwKpImN6dgzxAOj2jNvNmgOP5J2nhLeKH5Nsvm9
|
22
|
+
pcoOTs6b5ogsEqVyi2Dke5pkFxYRWADy4OP3Fo3NYoIvuj85F/PLdSeWzODzH02F
|
23
|
+
+7snDRyIQcYVoosU99GFRP8J/RgiX5zUQE1wlik3kTJ9iyYQAfKq7FgARuuN0qK+
|
24
|
+
stYf226vNkZRPzQlFEpzCn7aiCH36owy5Rjx9AzuCFwPkZWLmxucxz/6tV04EFaj
|
25
|
+
6UQPxF/F9p2jozaIzzkCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
26
|
+
sDAdBgNVHQ4EFgQUb6J8U3+zTXV1fvjeY2uqurhHr10wIwYDVR0RBBwwGoEYZ2xl
|
27
27
|
bmFiQGtvYW5zb2x1dGlvbnMubmV0MCMGA1UdEgQcMBqBGGdsZW5hYkBrb2Fuc29s
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
28
|
+
dXRpb25zLm5ldDANBgkqhkiG9w0BAQUFAAOCAQEAcfsqzd6M74G8mRJh1YfsJSWj
|
29
|
+
SSA7kcvZ5oXlODQTJOv9WKH9g6NGzpuP58OXJK+sPgPNC3ckHgaLin8AcvvbObzO
|
30
|
+
//PT/k836WmOo938e1G9I/7BVPv87uoF37qC6SU6DJqoaoFW7d7tr6fDQmznUgcX
|
31
|
+
aFE2sHoq81yK1gHiUvUyFvk2CNrso9MCfZ2PlhmC/8dTDxvv6aDz6/mFRUjFiVQ7
|
32
|
+
ZPpOr1woOI8z0Dbl7m7wqH9/51lSe59b/e3WrXq1iR/VHc2Hd9ocDyd1khbkEfWU
|
33
|
+
CTv0+YYX7a/gwgu/u9q1L4onYVb68F7MR1NjxUIYJmy1NtRjqW4iJ7ITT35RWw==
|
34
34
|
-----END CERTIFICATE-----
|
35
|
-
date:
|
35
|
+
date: 2017-08-12 00:00:00.000000000 Z
|
36
36
|
dependencies:
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: selenium-webdriver
|
39
39
|
requirement: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '3.4'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
46
|
+
version: 3.4.4
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '3.4'
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: 3.4.4
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
58
|
+
name: geckodriver-helper
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 2.45.0
|
63
|
+
version: 0.0.3
|
67
64
|
type: :runtime
|
68
65
|
prerelease: false
|
69
66
|
version_requirements: !ruby/object:Gem::Requirement
|
70
67
|
requirements:
|
71
68
|
- - "~>"
|
72
69
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 2.45.0
|
70
|
+
version: 0.0.3
|
77
71
|
- !ruby/object:Gem::Dependency
|
78
72
|
name: sqlite3
|
79
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -83,7 +77,7 @@ dependencies:
|
|
83
77
|
version: '1.3'
|
84
78
|
- - ">="
|
85
79
|
- !ruby/object:Gem::Version
|
86
|
-
version: 1.3.
|
80
|
+
version: 1.3.13
|
87
81
|
type: :runtime
|
88
82
|
prerelease: false
|
89
83
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -93,27 +87,27 @@ dependencies:
|
|
93
87
|
version: '1.3'
|
94
88
|
- - ">="
|
95
89
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.3.
|
90
|
+
version: 1.3.13
|
97
91
|
- !ruby/object:Gem::Dependency
|
98
92
|
name: capybara
|
99
93
|
requirement: !ruby/object:Gem::Requirement
|
100
94
|
requirements:
|
101
95
|
- - "~>"
|
102
96
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2.
|
97
|
+
version: '2.15'
|
104
98
|
- - ">="
|
105
99
|
- !ruby/object:Gem::Version
|
106
|
-
version: 2.
|
100
|
+
version: 2.15.1
|
107
101
|
type: :runtime
|
108
102
|
prerelease: false
|
109
103
|
version_requirements: !ruby/object:Gem::Requirement
|
110
104
|
requirements:
|
111
105
|
- - "~>"
|
112
106
|
- !ruby/object:Gem::Version
|
113
|
-
version: '2.
|
107
|
+
version: '2.15'
|
114
108
|
- - ">="
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: 2.
|
110
|
+
version: 2.15.1
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
112
|
name: capybara-screenshot
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +117,7 @@ dependencies:
|
|
123
117
|
version: '1.0'
|
124
118
|
- - ">="
|
125
119
|
- !ruby/object:Gem::Version
|
126
|
-
version: 1.0.
|
120
|
+
version: 1.0.17
|
127
121
|
type: :runtime
|
128
122
|
prerelease: false
|
129
123
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -133,27 +127,21 @@ dependencies:
|
|
133
127
|
version: '1.0'
|
134
128
|
- - ">="
|
135
129
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.0.
|
130
|
+
version: 1.0.17
|
137
131
|
- !ruby/object:Gem::Dependency
|
138
132
|
name: sequel
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
140
134
|
requirements:
|
141
135
|
- - "~>"
|
142
136
|
- !ruby/object:Gem::Version
|
143
|
-
version: '4.
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: 4.20.0
|
137
|
+
version: '4.49'
|
147
138
|
type: :runtime
|
148
139
|
prerelease: false
|
149
140
|
version_requirements: !ruby/object:Gem::Requirement
|
150
141
|
requirements:
|
151
142
|
- - "~>"
|
152
143
|
- !ruby/object:Gem::Version
|
153
|
-
version: '4.
|
154
|
-
- - ">="
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
version: 4.20.0
|
144
|
+
version: '4.49'
|
157
145
|
- !ruby/object:Gem::Dependency
|
158
146
|
name: gamera-symbolmatrix
|
159
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,73 +183,78 @@ dependencies:
|
|
195
183
|
- !ruby/object:Gem::Version
|
196
184
|
version: 2.0.4
|
197
185
|
- !ruby/object:Gem::Dependency
|
198
|
-
name:
|
186
|
+
name: sinatra
|
199
187
|
requirement: !ruby/object:Gem::Requirement
|
200
188
|
requirements:
|
201
189
|
- - "~>"
|
202
190
|
- !ruby/object:Gem::Version
|
203
|
-
version: '
|
191
|
+
version: '2.0'
|
204
192
|
- - ">="
|
205
193
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
194
|
+
version: 2.0.0
|
207
195
|
type: :development
|
208
196
|
prerelease: false
|
209
197
|
version_requirements: !ruby/object:Gem::Requirement
|
210
198
|
requirements:
|
211
199
|
- - "~>"
|
212
200
|
- !ruby/object:Gem::Version
|
213
|
-
version: '
|
201
|
+
version: '2.0'
|
214
202
|
- - ">="
|
215
203
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
204
|
+
version: 2.0.0
|
217
205
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
206
|
+
name: byebug
|
219
207
|
requirement: !ruby/object:Gem::Requirement
|
220
208
|
requirements:
|
221
209
|
- - "~>"
|
222
210
|
- !ruby/object:Gem::Version
|
223
|
-
version: '
|
211
|
+
version: '9.0'
|
224
212
|
- - ">="
|
225
213
|
- !ruby/object:Gem::Version
|
226
|
-
version:
|
214
|
+
version: 9.0.6
|
227
215
|
type: :development
|
228
216
|
prerelease: false
|
229
217
|
version_requirements: !ruby/object:Gem::Requirement
|
230
218
|
requirements:
|
231
219
|
- - "~>"
|
232
220
|
- !ruby/object:Gem::Version
|
233
|
-
version: '
|
221
|
+
version: '9.0'
|
234
222
|
- - ">="
|
235
223
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
224
|
+
version: 9.0.6
|
237
225
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
226
|
+
name: rspec
|
239
227
|
requirement: !ruby/object:Gem::Requirement
|
240
228
|
requirements:
|
241
229
|
- - "~>"
|
242
230
|
- !ruby/object:Gem::Version
|
243
|
-
version: '
|
244
|
-
- - ">="
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
version: 0.8.7.2
|
231
|
+
version: '3.6'
|
247
232
|
type: :development
|
248
233
|
prerelease: false
|
249
234
|
version_requirements: !ruby/object:Gem::Requirement
|
250
235
|
requirements:
|
251
236
|
- - "~>"
|
252
237
|
- !ruby/object:Gem::Version
|
253
|
-
version: '
|
254
|
-
|
238
|
+
version: '3.6'
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: yard
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - "~>"
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: 0.9.9
|
246
|
+
type: :development
|
247
|
+
prerelease: false
|
248
|
+
version_requirements: !ruby/object:Gem::Requirement
|
249
|
+
requirements:
|
250
|
+
- - "~>"
|
255
251
|
- !ruby/object:Gem::Version
|
256
|
-
version: 0.
|
252
|
+
version: 0.9.9
|
257
253
|
- !ruby/object:Gem::Dependency
|
258
254
|
name: yardstick
|
259
255
|
requirement: !ruby/object:Gem::Requirement
|
260
256
|
requirements:
|
261
257
|
- - "~>"
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
version: '0.9'
|
264
|
-
- - ">="
|
265
258
|
- !ruby/object:Gem::Version
|
266
259
|
version: 0.9.9
|
267
260
|
type: :development
|
@@ -269,9 +262,6 @@ dependencies:
|
|
269
262
|
version_requirements: !ruby/object:Gem::Requirement
|
270
263
|
requirements:
|
271
264
|
- - "~>"
|
272
|
-
- !ruby/object:Gem::Version
|
273
|
-
version: '0.9'
|
274
|
-
- - ">="
|
275
265
|
- !ruby/object:Gem::Version
|
276
266
|
version: 0.9.9
|
277
267
|
description: Provides a framework which lets you wrap any web page with a Ruby API.
|
@@ -306,6 +296,9 @@ require_paths:
|
|
306
296
|
required_ruby_version: !ruby/object:Gem::Requirement
|
307
297
|
requirements:
|
308
298
|
- - "~>"
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: '2.1'
|
301
|
+
- - ">="
|
309
302
|
- !ruby/object:Gem::Version
|
310
303
|
version: 2.1.0
|
311
304
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -315,9 +308,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
308
|
version: '0'
|
316
309
|
requirements: []
|
317
310
|
rubyforge_project:
|
318
|
-
rubygems_version: 2.
|
311
|
+
rubygems_version: 2.6.11
|
319
312
|
signing_key:
|
320
313
|
specification_version: 4
|
321
314
|
summary: PageObject pattern implementation based on Capybara
|
322
315
|
test_files: []
|
323
|
-
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|