capybara-pagemap 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a28e06a198938ebad6bd6afc197aa5764e95e50b
4
+ data.tar.gz: f708a6d76b31feaa9d589a7d17d356f25a08f7cf
5
+ SHA512:
6
+ metadata.gz: 9b78c955732d8328d8d38c585cc049e22cb9fb3957a9413db8672b26cac8d49fa07c398e7d2327e42c1353d5b6be6259dfe06aa257fe48a209da4491a9a6bbbc
7
+ data.tar.gz: 1204e6c784f5959bdcfec1c617889a457e52452e199f5ea4f6aea0e02cd1c97a78e17d23804a30b42977c329f6e986e64ed69fe759abfe0de0f546c6e5fbae78
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ inherit_from: .rubocop_todo.yml
2
+ AllCops:
3
+ TargetRubyVersion: 2.3
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,17 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2017-12-11 17:21:26 -0600 using RuboCop version 0.51.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Metrics/AbcSize:
11
+ Max: 20
12
+
13
+ # Offense count: 8
14
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
15
+ # URISchemes: http, https
16
+ Metrics/LineLength:
17
+ Max: 180
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ env:
2
+ global:
3
+ - CC_TEST_REPORTER_ID=a84280065b8cb316f57d2f99d2dcf057fcb8164c6972136346d445c9beed8ddb
4
+ language: ruby
5
+ rvm:
6
+ - 2.4.2
7
+ - 2.3.5
8
+ before_install: gem install bundler -v 1.16.0
9
+ before_script:
10
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
11
+ - chmod +x ./cc-test-reporter
12
+ - ./cc-test-reporter before-build
13
+ script:
14
+ - bundle exec rake test
15
+ after_script:
16
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in capybara-pagemap.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Luis Ezcurdia
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # Capybara Pagemap
2
+ [![Build Status](https://travis-ci.org/3zcurdia/capybara-pagemap.svg?branch=master)](https://travis-ci.org/3zcurdia/capybara-pagemap)
3
+ [![Maintainability](https://api.codeclimate.com/v1/badges/19084f69bfee063ec218/maintainability)](https://codeclimate.com/github/3zcurdia/capybara-pagemap/maintainability)
4
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/19084f69bfee063ec218/test_coverage)](https://codeclimate.com/github/3zcurdia/capybara-pagemap/test_coverage)
5
+ [![Gem Version](https://badge.fury.io/rb/capybara-pagemap.svg)](https://badge.fury.io/rb/capybara-pagemap)
6
+
7
+ Simple object mapper for page objects with capybara
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'capybara-pagemap'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install capybara-pagemap
24
+
25
+ ## Usage
26
+
27
+ Inherit from ```Capybara::Pagemap::Base``` and define the input fields as the following example
28
+
29
+ ```ruby
30
+ class LoginPage
31
+ include Capybara::Pagemap
32
+ define_input :email, '//*[@id="user_email"]'
33
+ define_input :password, '//*[@id="user_password"]'
34
+ define_button :log_in, '//*[@id="log_in"]'
35
+ end
36
+ ```
37
+ Once you have define your input you will have access to the getters setters
38
+
39
+ ```ruby
40
+ login_page = LoginPage.new
41
+ login_page.email = "test@example.org"
42
+ login_page.email
43
+ # => "test@example.org"
44
+ login_page.email_input
45
+ # => Capybara::Node
46
+ login_page.log_in_button.click if login_page.valid?
47
+ ```
48
+
49
+
50
+ ## Contributing
51
+
52
+ Bug reports and pull requests are welcome on GitHub at https://github.com/3zcurdia/capybara-pagemap.
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
10
+ end
11
+
12
+ task default: :test
data/bin/console ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'capybara/pagemap'
6
+
7
+ require 'pry'
8
+ Pry.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,30 @@
1
+
2
+ # frozen_string_literal: true
3
+
4
+ lib = File.expand_path('../lib', __FILE__)
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
+ require 'capybara/pagemap/version'
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = 'capybara-pagemap'
10
+ spec.version = Capybara::Pagemap::VERSION
11
+ spec.authors = ['Luis Ezcurdia']
12
+ spec.email = ['ing.ezcurdia@gmail.com']
13
+ spec.license = 'MIT'
14
+ spec.summary = 'Object mapper DSL for capybara'
15
+ spec.description = 'Simple object mapper for page objects with capybara'
16
+ spec.homepage = 'https://github.com/3zcurdia/capybara-pagemap'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ spec.bindir = 'exe'
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.add_dependency 'capybara', '>= 2.2.0'
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.11'
26
+ spec.add_development_dependency 'minitest', '~> 5.0'
27
+ spec.add_development_dependency 'simplecov', '>= 0.13'
28
+ spec.add_development_dependency 'pry', '~> 0.10.3'
29
+ spec.add_development_dependency 'rake', '~> 10.0'
30
+ end
data/changelog.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ ## v0.1.0..v0.1.1
4
+
5
+ * [a2c48ab](https://github.com/3zcurdia/capybara-pagemap/commit/a2c48abb8833e8f5506103302087804e267ccf3f) release 0.1.1 [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
6
+ * [66adbdf](https://github.com/3zcurdia/capybara-pagemap/commit/66adbdf94d6ad96d255973b8baab3c717fd14401) add select input [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
7
+ * [e15797e](https://github.com/3zcurdia/capybara-pagemap/commit/e15797e3d90d5ad5e7f67a570ae0c6495d55959d) use metaprograming method to detarminate if a page is valid [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
8
+ * [144916b](https://github.com/3zcurdia/capybara-pagemap/commit/144916be91178c3c9a51e65f50772fb83a1ae2c6) add gem badge [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
9
+
10
+ # Changelog
11
+
12
+ ## v0.1.1..v0.1.2
13
+
14
+ * [00f1edc](https://github.com/3zcurdia/capybara-pagemap/commit/00f1edcfa8c6b1eece323a52f3d12450705f48d6) update version [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
15
+ * [8bd501a](https://github.com/3zcurdia/capybara-pagemap/commit/8bd501a0694638aef1f73da46886fdfd1cf91cc3) fix node definitions namespace [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
16
+ * [afc382e](https://github.com/3zcurdia/capybara-pagemap/commit/afc382ea035d33e7e9203207a558ddf4b5e0b5af) add select by value [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
17
+ * [7a6c82c](https://github.com/3zcurdia/capybara-pagemap/commit/7a6c82c30c4f4818e368d4b7493c4753e8b47f1c) create changelog [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
18
+
19
+ ## v0.1.0..v0.1.1
20
+
21
+ * [a2c48ab](https://github.com/3zcurdia/capybara-pagemap/commit/a2c48abb8833e8f5506103302087804e267ccf3f) release 0.1.1 [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
22
+ * [66adbdf](https://github.com/3zcurdia/capybara-pagemap/commit/66adbdf94d6ad96d255973b8baab3c717fd14401) add select input [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
23
+ * [e15797e](https://github.com/3zcurdia/capybara-pagemap/commit/e15797e3d90d5ad5e7f67a570ae0c6495d55959d) use metaprograming method to detarminate if a page is valid [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
24
+ * [144916b](https://github.com/3zcurdia/capybara-pagemap/commit/144916be91178c3c9a51e65f50772fb83a1ae2c6) add gem badge [Luis Ezcurdia](mailto:ing.ezcurdia@gmail.com)
25
+
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capybara/pagemap/version'
4
+ require 'capybara/pagemap/configuration'
5
+ require 'capybara/pagemap/input'
6
+ require 'capybara/pagemap/button'
7
+ require 'capybara/pagemap/select'
8
+
9
+ module Capybara
10
+ # Pagemap module extend functionality to clases to map capybara nodes
11
+ module Pagemap
12
+ # Modules Available
13
+ include Input
14
+ include Button
15
+ include Select
16
+ MODULES_ENABLED = configuration.enabled.freeze
17
+
18
+ def self.included(base)
19
+ base.extend(ClassMethods)
20
+ MODULES_ENABLED.each do |mod|
21
+ base.extend(Object.const_get("Capybara::Pagemap::#{mod.capitalize}::ClassMethods"))
22
+ end
23
+ end
24
+
25
+ # :nodoc:
26
+ module ClassMethods
27
+ def node_definitions
28
+ @node_definitions ||= {}
29
+ end
30
+ end
31
+
32
+ def valid?
33
+ self.class.node_definitions.map do |node, definition|
34
+ MODULES_ENABLED.map do |type|
35
+ next if definition[:type] != type
36
+ send("#{type}_validator_for", node)
37
+ end.compact.all?
38
+ end.all?
39
+ end
40
+
41
+ def method_missing(method_name, *args, &block)
42
+ self.class.node_definitions.each_value do |definition|
43
+ MODULES_ENABLED.each do |type|
44
+ next if definition[:type] != type
45
+ return send("#{type}_method_missing", method_name, args, block) if respond_to?(method_name)
46
+ end
47
+ end
48
+ super
49
+ end
50
+
51
+ def respond_to_missing?(method_name, include_private = false)
52
+ self.class.node_definitions.map do |_, definition|
53
+ MODULES_ENABLED.map do |type|
54
+ next if definition[:type] != type
55
+ send("#{type}_respond_to_missing?", method_name, include_private)
56
+ end.compact.all?
57
+ end.all?
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module Pagemap
5
+ # Button build methods for clickable DOM elements
6
+ module Button
7
+ # :nodoc
8
+ module ClassMethods
9
+ def define_button(name, xpath)
10
+ node_definitions[name] = { type: :button, value: xpath }
11
+ end
12
+ end
13
+
14
+ def button_validator_for(node)
15
+ !send("#{node}_button").nil?
16
+ end
17
+
18
+ def button_method_missing(method_name, *_, &_block)
19
+ return unless /(?<key>.*)_button$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :button
20
+ build_button(key.to_sym)
21
+ send(method_name)
22
+ end
23
+
24
+ def button_respond_to_missing?(method_name, _include_private = false)
25
+ /(?<key>.*)_button$/ =~ method_name && self.class.node_definitions[key.to_sym]
26
+ end
27
+
28
+ private
29
+
30
+ def build_button(key_name)
31
+ instance_eval <<-RUBY
32
+ def #{key_name}_button
33
+ @#{key_name}_button ||= page.find(:xpath, self.class.node_definitions[:#{key_name}][:value])
34
+ end
35
+ RUBY
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ # Pagemap module extend functionality to clases to map capybara nodes
5
+ module Pagemap
6
+ class << self
7
+ attr_writer :configuration
8
+ end
9
+
10
+ def self.configuration
11
+ @configuration ||= Configuration.new
12
+ end
13
+
14
+ def self.configure
15
+ yield(configuration)
16
+ end
17
+
18
+ # Configuration class encapsulates gobal configurations
19
+ class Configuration
20
+ attr_accessor :enabled
21
+ def initialize
22
+ @enabled = %i[input button select]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module Pagemap
5
+ # Input build methods for input selector
6
+ module Input
7
+ # :nodoc:
8
+ module ClassMethods
9
+ def define_input(name, xpath, type = :input)
10
+ node_definitions[name] = { type: type, value: xpath }
11
+ end
12
+ end
13
+
14
+ def input_validator_for(node)
15
+ !send("#{node}_input").nil?
16
+ end
17
+
18
+ def input_method_missing(method_name, args, block)
19
+ input_build_and_send(method_name, args, block) ||
20
+ input_setter_build_and_send(method_name, args, block) ||
21
+ input_getter_build_and_send(method_name, args, block)
22
+ end
23
+
24
+ def input_build_and_send(method_name, _, _block)
25
+ return unless /(?<key>.*)_input$/ =~ method_name && self.class.node_definitions[key.to_sym]
26
+ build_input(key.to_sym)
27
+ send(method_name)
28
+ end
29
+
30
+ def input_setter_build_and_send(method_name, args, _block)
31
+ return unless /(?<key>.*)=$/ =~ method_name && self.class.node_definitions[key.to_sym]
32
+ define_input_setter(key)
33
+ send(method_name, args.first)
34
+ end
35
+
36
+ def input_getter_build_and_send(method_name, _, _block)
37
+ return unless self.class.node_definitions[method_name.to_sym]
38
+ define_input_getter(method_name)
39
+ send(method_name)
40
+ end
41
+
42
+ def input_respond_to_missing?(method_name, _include_private = false)
43
+ /(.*)_input$/ =~ method_name || /(.*)=$/ =~ method_name || self.class.node_definitions[(Regexp.last_match(1) || method_name).to_sym]
44
+ end
45
+
46
+ private
47
+
48
+ def build_input(key_name)
49
+ instance_eval <<-RUBY
50
+ def #{key_name}_input
51
+ @#{key_name}_input ||= page.find(:xpath, self.class.node_definitions[:#{key_name}][:value])
52
+ end
53
+ RUBY
54
+ end
55
+
56
+ def define_input_setter(key_name)
57
+ instance_eval <<-RUBY
58
+ def #{key_name}=(value)
59
+ self.#{key_name}_input.set(value) if self.#{key_name}_input.respond_to?(:set)
60
+ end
61
+ RUBY
62
+ end
63
+
64
+ def define_input_getter(key_name)
65
+ instance_eval <<-RUBY
66
+ def #{key_name}
67
+ self.#{key_name}_input.value
68
+ end
69
+ RUBY
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module Pagemap
5
+ # Select build methods for selectable DOM elements
6
+ module Select
7
+ # :nodoc
8
+ module ClassMethods
9
+ def define_select(name, xpath)
10
+ node_definitions[name] = { type: :select, value: xpath }
11
+ end
12
+ end
13
+
14
+ def select_validator_for(node)
15
+ !send("#{node}_select").nil?
16
+ end
17
+
18
+ def select_method_missing(method_name, args, block)
19
+ select_input_build_and_send(method_name, args, block) ||
20
+ select_opt_build_and_send(method_name, args, block) ||
21
+ select_value_build_and_send(method_name, args, block) ||
22
+ select_getter_build_and_send(method_name, args, block)
23
+ end
24
+
25
+ def select_input_build_and_send(method_name, _args, _block)
26
+ return unless /(?<key>.*)_input$/ =~ method_name && self.class.node_definitions[key.to_sym]
27
+ build_select_input(key)
28
+ send(method_name)
29
+ end
30
+
31
+ def select_opt_build_and_send(method_name, args, _block)
32
+ return unless /(?<key>.*)_select$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :select
33
+ build_select_opt(key)
34
+ send(method_name, args.first)
35
+ end
36
+
37
+ def select_value_build_and_send(method_name, args, _block)
38
+ return unless /(?<key>.*)_select_by$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :select
39
+ build_select_by(key)
40
+ send(method_name, args.first)
41
+ end
42
+
43
+ def select_getter_build_and_send(method_name, _args, _block)
44
+ return unless self.class.node_definitions[method_name.to_sym]
45
+ build_select_getter(method_name)
46
+ send(method_name)
47
+ end
48
+
49
+ def select_respond_to_missing?(method_name, _include_private = false)
50
+ /(.*)_input$/ =~ method_name ||
51
+ /(.*)_select$/ =~ method_name ||
52
+ /(.*)_select_by$/ =~ method_name ||
53
+ self.class.node_definitions[(Regexp.last_match(1) || method_name).to_sym]
54
+ end
55
+
56
+ private
57
+
58
+ def build_select_input(key_name)
59
+ instance_eval <<-RUBY
60
+ def #{key_name}_input
61
+ @#{key_name}_input ||= page.find(:xpath, self.class.node_definitions[:#{key_name}][:value])
62
+ end
63
+ RUBY
64
+ end
65
+
66
+ def build_select_opt(key_name)
67
+ instance_eval <<-RUBY
68
+ def #{key_name}_select(option)
69
+ @#{key_name}_input.select(option) if self.#{key_name}_input.respond_to?(:select)
70
+ end
71
+ RUBY
72
+ end
73
+
74
+ def build_select_by(key_name)
75
+ instance_eval <<-RUBY
76
+ def #{key_name}_select_by(value)
77
+ self.#{key_name}_input.find("option[value='"+value+"']").select_option if self.#{key_name}_input.respond_to?(:find)
78
+ end
79
+ RUBY
80
+ end
81
+
82
+ def build_select_getter(key_name)
83
+ instance_eval <<-RUBY
84
+ def #{key_name}
85
+ self.#{key_name}_input.value
86
+ end
87
+ RUBY
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module Pagemap
5
+ VERSION = '0.2.0'
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,146 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capybara-pagemap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Luis Ezcurdia
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-12-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capybara
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.11'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.11'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0.13'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0.13'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.10.3
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.10.3
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ description: Simple object mapper for page objects with capybara
98
+ email:
99
+ - ing.ezcurdia@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".rubocop.yml"
106
+ - ".rubocop_todo.yml"
107
+ - ".travis.yml"
108
+ - Gemfile
109
+ - LICENSE
110
+ - README.md
111
+ - Rakefile
112
+ - bin/console
113
+ - bin/setup
114
+ - capybara-pagemap.gemspec
115
+ - changelog.md
116
+ - lib/capybara/pagemap.rb
117
+ - lib/capybara/pagemap/button.rb
118
+ - lib/capybara/pagemap/configuration.rb
119
+ - lib/capybara/pagemap/input.rb
120
+ - lib/capybara/pagemap/select.rb
121
+ - lib/capybara/pagemap/version.rb
122
+ homepage: https://github.com/3zcurdia/capybara-pagemap
123
+ licenses:
124
+ - MIT
125
+ metadata: {}
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project:
142
+ rubygems_version: 2.6.14
143
+ signing_key:
144
+ specification_version: 4
145
+ summary: Object mapper DSL for capybara
146
+ test_files: []