pretest 1.12.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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.rubocop.yml +39 -0
- data/.travis.yml +5 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +63 -0
- data/LICENSE.txt +662 -0
- data/README.md +69 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/pretest +5 -0
- data/bin/setup +6 -0
- data/lib/pretest.rb +2 -0
- data/lib/pretest/cli.rb +59 -0
- data/lib/pretest/config/linux.rb +60 -0
- data/lib/pretest/config/mac.rb +74 -0
- data/lib/pretest/config/operational_system.rb +34 -0
- data/lib/pretest/config/unix.rb +21 -0
- data/lib/pretest/config/windows.rb +135 -0
- data/lib/pretest/environment/check.rb +48 -0
- data/lib/pretest/mobile/environment.rb +81 -0
- data/lib/pretest/structure/clone.rb +115 -0
- data/lib/pretest/structure/clone/Gemfile.tt +55 -0
- data/lib/pretest/structure/clone/app_installation_hook.rb.tt +28 -0
- data/lib/pretest/structure/clone/app_life_cycle_hooks.rb.tt +13 -0
- data/lib/pretest/structure/clone/cucumber.yml.tt +1 -0
- data/lib/pretest/structure/clone/dry_run.rb.tt +16 -0
- data/lib/pretest/structure/clone/env.rb.tt +91 -0
- data/lib/pretest/structure/clone/example.feature.tt +35 -0
- data/lib/pretest/structure/clone/example.rb.tt +30 -0
- data/lib/pretest/structure/clone/first_launch.rb.tt +28 -0
- data/lib/pretest/structure/clone/hooks.rb.tt +18 -0
- data/lib/pretest/structure/clone/step_definitions.rb.tt +129 -0
- data/lib/pretest/version.rb +3 -0
- data/pretest.gemspec +30 -0
- metadata +224 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
<% if web_scaffold == 'true' -%>
|
2
|
+
Feature: Validate LemonStudio Tests page.
|
3
|
+
|
4
|
+
Background:
|
5
|
+
Given I am on "https://lemonstudio.io/trainning"
|
6
|
+
|
7
|
+
@tag @tag1
|
8
|
+
Scenario: Check buttons, select box, checkbox, and fields in current page
|
9
|
+
And I click on "btn_one" button
|
10
|
+
When I select "ExampleOne" from "select_box"
|
11
|
+
And I check "opt_one" in check box
|
12
|
+
And I fill in "first_name" with "Test"
|
13
|
+
Then I expect to not see "#btn_one"
|
14
|
+
|
15
|
+
@tag @tag2
|
16
|
+
Scenario: Check each buttons, select box, checkbox, and fields in current page
|
17
|
+
And I click on each button
|
18
|
+
When I select "ExampleOne" from "select_box"
|
19
|
+
And I check each check box
|
20
|
+
And I fill in all fields
|
21
|
+
Then I expect to see all the buttons in buttons panel
|
22
|
+
<% end -%>
|
23
|
+
<% if api_scaffold == 'true' -%>
|
24
|
+
Feature: API examples
|
25
|
+
|
26
|
+
Background: Store the current environment url, and validate the current state
|
27
|
+
Given I make an "GET" in "https://jsonplaceholder.typicode.com/" and i receive an status "200"
|
28
|
+
|
29
|
+
Scenario: Make an simple GET on current environment
|
30
|
+
When I save my verb as "GET" with endpoint "posts" using query_params as "empty"
|
31
|
+
And I set my header as "default" and my payload as "default"
|
32
|
+
And I submit my request
|
33
|
+
Then I expect to receive an status "200"
|
34
|
+
And I expect to receive my response as "Array" format
|
35
|
+
<% end -%>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% if web_scaffold == 'true' -%>
|
2
|
+
class Example
|
3
|
+
|
4
|
+
include Capybara::DSL
|
5
|
+
|
6
|
+
def buttons_click
|
7
|
+
all("button").each do |btn|
|
8
|
+
btn.click
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def all_check_box
|
13
|
+
all("*[type='checkbox']").each(&:click)
|
14
|
+
end
|
15
|
+
|
16
|
+
def fill_each_fields
|
17
|
+
all("input[class='form-control']").each do |field|
|
18
|
+
field.set("#{field['placeholder']} #{rand(100..999)}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def has_buttons
|
23
|
+
assert_selector("#btn_one")
|
24
|
+
assert_selector("#btn_two")
|
25
|
+
assert_selector("#btn_three")
|
26
|
+
assert_selector("#btn_link")
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
<% end -%>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'calabash-cucumber/launcher'
|
2
|
+
|
3
|
+
module Calabash::Launcher
|
4
|
+
@@launcher = nil
|
5
|
+
|
6
|
+
def self.launcher
|
7
|
+
@@launcher ||= Calabash::Cucumber::Launcher.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.launcher=(launcher)
|
11
|
+
@@launcher = launcher
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Before do |scenario|
|
16
|
+
launcher = Calabash::Launcher.launcher
|
17
|
+
options = {
|
18
|
+
# Add launch options here.
|
19
|
+
}
|
20
|
+
|
21
|
+
launcher.relaunch(options)
|
22
|
+
end
|
23
|
+
|
24
|
+
After do |scenario|
|
25
|
+
if launcher.quit_app_after_scenario?
|
26
|
+
calabash_exit
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% if web == 'false' &&
|
2
|
+
( web_scaffold == 'false' &&
|
3
|
+
( api == 'false' &&
|
4
|
+
( api_scaffold == 'false' &&
|
5
|
+
( clean_install == 'false' &&
|
6
|
+
( ios == 'false' &&
|
7
|
+
( android == 'false')))))) -%>
|
8
|
+
require 'selenium-webdriver'
|
9
|
+
<% end -%>
|
10
|
+
<% if web == 'true' || web_scaffold == 'true' -%>
|
11
|
+
require 'selenium-webdriver'
|
12
|
+
<% end -%>
|
13
|
+
<% if web_scaffold == 'true' -%>
|
14
|
+
|
15
|
+
Before do
|
16
|
+
@example = Example.new
|
17
|
+
end
|
18
|
+
<% end -%>
|
@@ -0,0 +1,129 @@
|
|
1
|
+
<% if web_scaffold == 'true' -%>
|
2
|
+
# Visit web page
|
3
|
+
Given(/^I am on "([^"]*)"$/) do |site|
|
4
|
+
visit(site)
|
5
|
+
end
|
6
|
+
|
7
|
+
# Click on item by first index
|
8
|
+
Given(/^I click on "([^"]*)" item by index$/) do |btn|
|
9
|
+
all("btn")[0].click
|
10
|
+
end
|
11
|
+
|
12
|
+
# Click on first item
|
13
|
+
Given(/^I click on "([^"]*)" first item match$/) do |btn|
|
14
|
+
first(btn).click
|
15
|
+
end
|
16
|
+
|
17
|
+
# Click on item by button id
|
18
|
+
Given(/^I click on "([^"]*)" button$/) do |btn|
|
19
|
+
click_button(btn)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Click on item by text link
|
23
|
+
Given(/^I click on "([^"]*)" link$/) do |link|
|
24
|
+
click_link(link)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Select option by id
|
28
|
+
When(/^I select "([^"]*)" from "([^"]*)"$/) do |option, select_box|
|
29
|
+
select(option, from: select_box)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Select option using id
|
33
|
+
When(/^I select "([^"]*)" from "([^"]*)" using id option$/) do |option, select_box|
|
34
|
+
select(option, from: select_box)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Select option using first index
|
38
|
+
When(/^I select "([^"]*)" from "([^"]*)" using index option$/) do |option, select_box|
|
39
|
+
select(option, from: select_box)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Check box using id option
|
43
|
+
When(/^I check "([^"]*)" in check box$/) do |check|
|
44
|
+
check(check)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Fill in fields
|
48
|
+
When(/^I fill in "([^"]*)" with "([^"]*)"$/) do |field, value|
|
49
|
+
fill_in(field, with: value)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Assert that an element does not exists
|
53
|
+
Then(/^I expect to not see "([^"]*)"$/) do |css|
|
54
|
+
assert_no_selector(css)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Click on each button using an Example class based on PageObject
|
58
|
+
Given(/^I click on each button$/) do
|
59
|
+
@example.buttons_click
|
60
|
+
end
|
61
|
+
|
62
|
+
# Click on each check box using an Example class based on PageObject
|
63
|
+
When(/^I check each check box$/) do
|
64
|
+
@example.all_check_box
|
65
|
+
end
|
66
|
+
|
67
|
+
# Fill in all fields using an Example class based on PageObject
|
68
|
+
When(/^I fill in all fields$/) do
|
69
|
+
@example.fill_each_fields
|
70
|
+
end
|
71
|
+
|
72
|
+
# Assert that a list of buttons is not being showed using an Example class based on PageObject
|
73
|
+
Then(/^I expect to see all the buttons in buttons panel$/) do
|
74
|
+
@example.has_buttons
|
75
|
+
end
|
76
|
+
<% end -%>
|
77
|
+
<% if api_scaffold == 'true' -%>
|
78
|
+
# Define default values used on project example
|
79
|
+
VALUES = {
|
80
|
+
"default" =>"",
|
81
|
+
"empty" =>"",
|
82
|
+
"json_type"=>{
|
83
|
+
:"Content-Type"=>"application/json"
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
# Make an simple request and validate his status code
|
88
|
+
Given(/^I make an "([^"]*)" in "([^"]*)" and i receive an status "([^"]*)"$/) do |verb, url, status|
|
89
|
+
@url = url
|
90
|
+
response = RestClient::Request.execute(method: verb.downcase.to_sym,
|
91
|
+
url: @url)
|
92
|
+
expect(response.code).to eql(status.to_i)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Save verb/endpoint/query_params to use in current request
|
96
|
+
When(/^I save my verb as "([^"]*)" with endpoint "([^"]*)" using query_params as "([^"]*)"$/) do |verb, endpoint, query_params|
|
97
|
+
@verb = verb.downcase.to_sym
|
98
|
+
@endpoint = endpoint
|
99
|
+
@query_params = VALUES[query_params]
|
100
|
+
end
|
101
|
+
|
102
|
+
# Set header and payload data based on default values
|
103
|
+
When(/^I set my header as "([^"]*)" and my payload as "([^"]*)"$/) do |header, payload|
|
104
|
+
@header = VALUES[header]
|
105
|
+
@payload = VALUES[payload]
|
106
|
+
end
|
107
|
+
|
108
|
+
# Submit current request with defined configs, and save request/response/body data from request
|
109
|
+
When(/^I submit my request$/) do
|
110
|
+
RestClient::Request.execute(method: @verb,
|
111
|
+
url: @url + @endpoint + @query_params,
|
112
|
+
payload: @payload,
|
113
|
+
header: @header) do |res,req,results|
|
114
|
+
@request = req
|
115
|
+
@response = res
|
116
|
+
@body = JSON.parse(res.body)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# Validate status code from current request
|
121
|
+
Then(/^I expect to receive an status "([^"]*)"$/) do |status|
|
122
|
+
expect(@response.code).to eql(status.to_i)
|
123
|
+
end
|
124
|
+
|
125
|
+
# Validate response body format
|
126
|
+
Then(/^I expect to receive my response as "([^"]*)" format$/) do |type|
|
127
|
+
expect(@body.class.to_s).to eql(type)
|
128
|
+
end
|
129
|
+
<% end -%>
|
data/pretest.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'pretest/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'pretest'
|
7
|
+
spec.version = Pretest::VERSION
|
8
|
+
spec.authors = ['Lucas Machado', 'Murilo Machado']
|
9
|
+
spec.email = ['lucas.dpmachado@gmail.com', 'murilo.paula.machado@gmail.com']
|
10
|
+
|
11
|
+
spec.summary = 'Cucumber web, desktop and mobile project creator'
|
12
|
+
spec.description = 'A gem that creates a cucumber project structure'
|
13
|
+
spec.homepage = 'https://github.com/Lemon-Studio/pretest'
|
14
|
+
spec.license = 'AGPL-3.0'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = 'bin'
|
18
|
+
spec.executables = 'pretest'
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.14', '>= 1.14.6'
|
22
|
+
spec.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
|
24
|
+
|
25
|
+
spec.add_runtime_dependency 'nokogiri', '~> 1.8.5'
|
26
|
+
spec.add_runtime_dependency 'pry', '~> 0.10.4'
|
27
|
+
spec.add_runtime_dependency 'rest-client', '~> 2.0', '>= 2.0.2'
|
28
|
+
spec.add_runtime_dependency 'rubyzip', '~> 1.2', '>= 1.2.1'
|
29
|
+
spec.add_runtime_dependency 'thor', '~> 0'
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,224 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pretest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.12.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lucas Machado
|
8
|
+
- Murilo Machado
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.14'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.14.6
|
24
|
+
type: :development
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '1.14'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.14.6
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rake
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '12.0'
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 12.0.0
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '12.0'
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 12.0.0
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: rspec
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.7'
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 3.7.0
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '3.7'
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 3.7.0
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: nokogiri
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.8.5
|
81
|
+
type: :runtime
|
82
|
+
prerelease: false
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 1.8.5
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: pry
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 0.10.4
|
95
|
+
type: :runtime
|
96
|
+
prerelease: false
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.10.4
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rest-client
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '2.0'
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 2.0.2
|
112
|
+
type: :runtime
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '2.0'
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 2.0.2
|
122
|
+
- !ruby/object:Gem::Dependency
|
123
|
+
name: rubyzip
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '1.2'
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.2.1
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.2'
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.2.1
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: thor
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '0'
|
149
|
+
type: :runtime
|
150
|
+
prerelease: false
|
151
|
+
version_requirements: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - "~>"
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
description: A gem that creates a cucumber project structure
|
157
|
+
email:
|
158
|
+
- lucas.dpmachado@gmail.com
|
159
|
+
- murilo.paula.machado@gmail.com
|
160
|
+
executables:
|
161
|
+
- pretest
|
162
|
+
extensions: []
|
163
|
+
extra_rdoc_files: []
|
164
|
+
files:
|
165
|
+
- ".gitignore"
|
166
|
+
- ".rspec"
|
167
|
+
- ".rubocop.yml"
|
168
|
+
- ".travis.yml"
|
169
|
+
- Gemfile
|
170
|
+
- Gemfile.lock
|
171
|
+
- LICENSE.txt
|
172
|
+
- README.md
|
173
|
+
- Rakefile
|
174
|
+
- bin/console
|
175
|
+
- bin/pretest
|
176
|
+
- bin/setup
|
177
|
+
- lib/pretest.rb
|
178
|
+
- lib/pretest/cli.rb
|
179
|
+
- lib/pretest/config/linux.rb
|
180
|
+
- lib/pretest/config/mac.rb
|
181
|
+
- lib/pretest/config/operational_system.rb
|
182
|
+
- lib/pretest/config/unix.rb
|
183
|
+
- lib/pretest/config/windows.rb
|
184
|
+
- lib/pretest/environment/check.rb
|
185
|
+
- lib/pretest/mobile/environment.rb
|
186
|
+
- lib/pretest/structure/clone.rb
|
187
|
+
- lib/pretest/structure/clone/Gemfile.tt
|
188
|
+
- lib/pretest/structure/clone/app_installation_hook.rb.tt
|
189
|
+
- lib/pretest/structure/clone/app_life_cycle_hooks.rb.tt
|
190
|
+
- lib/pretest/structure/clone/cucumber.yml.tt
|
191
|
+
- lib/pretest/structure/clone/dry_run.rb.tt
|
192
|
+
- lib/pretest/structure/clone/env.rb.tt
|
193
|
+
- lib/pretest/structure/clone/example.feature.tt
|
194
|
+
- lib/pretest/structure/clone/example.rb.tt
|
195
|
+
- lib/pretest/structure/clone/first_launch.rb.tt
|
196
|
+
- lib/pretest/structure/clone/hooks.rb.tt
|
197
|
+
- lib/pretest/structure/clone/step_definitions.rb.tt
|
198
|
+
- lib/pretest/version.rb
|
199
|
+
- pretest.gemspec
|
200
|
+
homepage: https://github.com/Lemon-Studio/pretest
|
201
|
+
licenses:
|
202
|
+
- AGPL-3.0
|
203
|
+
metadata: {}
|
204
|
+
post_install_message:
|
205
|
+
rdoc_options: []
|
206
|
+
require_paths:
|
207
|
+
- lib
|
208
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
209
|
+
requirements:
|
210
|
+
- - ">="
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
213
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - ">="
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
218
|
+
requirements: []
|
219
|
+
rubyforge_project:
|
220
|
+
rubygems_version: 2.7.7
|
221
|
+
signing_key:
|
222
|
+
specification_version: 4
|
223
|
+
summary: Cucumber web, desktop and mobile project creator
|
224
|
+
test_files: []
|