capybara-pagemap 0.2.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 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: []