gamera 0.1.6 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|