cucumber-blendle-steps 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 +7 -0
- data/.gitignore +2 -0
- data/.hubbit.yml +0 -0
- data/.rubocop.yml +2 -0
- data/.wercker.yml +9 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +2 -0
- data/README.md +26 -0
- data/Rakefile +20 -0
- data/cucumber-blendle-steps.gemspec +36 -0
- data/lib/cucumber/blendle/steps/model_steps.rb +27 -0
- data/lib/cucumber/blendle/steps/resource_steps.rb +47 -0
- data/lib/cucumber/blendle/steps/rest_steps.rb +66 -0
- data/lib/cucumber/blendle/support/dump.rb +48 -0
- data/lib/cucumber/blendle/support/hyper_resource.rb +10 -0
- data/lib/cucumber/blendle/support/json_spec.rb +5 -0
- data/lib/cucumber/blendle/support/minitest.rb +13 -0
- data/lib/cucumber/blendle/support/rack_test.rb +3 -0
- data/lib/cucumber/blendle/version.rb +9 -0
- data/lib/cucumber/blendle_steps.rb +9 -0
- metadata +287 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ae9aff26a47ddd90de157a577413b30863e9c58e
|
4
|
+
data.tar.gz: 03ee88551e46bbc6d7f57e9275e08e4a194e45d5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 41f0c503695976c6de908c509b1823ef59c11515937a3a75e5b8bce22acbb63b09e0925ed2b5652811e852f651612b81d7ab3fcb211a7561d68c525c6d6df51b
|
7
|
+
data.tar.gz: 6c9187be04dc39c1c6b25ffd2cd389fedd2e1803c26b7eb15c2eed76d83c331b0640daf39f681244cfb6010ab68d06687cc81ac0364954c7027183890aff5cbe
|
data/.gitignore
ADDED
data/.hubbit.yml
ADDED
File without changes
|
data/.rubocop.yml
ADDED
data/.wercker.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# cucumber-blendle-steps [](https://app.wercker.com/project/bykey/a041fddb02cd177bd800343184ea7635)
|
2
|
+
|
3
|
+
This gem combines some of the Cucumber steps used throughout all of Blendle
|
4
|
+
projects.
|
5
|
+
|
6
|
+
More steps, features and documentation will follow...
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
gem 'cucumber-blendle-steps'
|
14
|
+
```
|
15
|
+
|
16
|
+
And then execute:
|
17
|
+
|
18
|
+
$ bundle install
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
add `require 'cucumber/blendle_steps'` to your `features/support/env.rb` file.
|
23
|
+
|
24
|
+
See [cucumber/blendle/steps](lib/cucumber/blendle/steps) for predefined steps,
|
25
|
+
and [cucumber/blendle/support](lib/cucumber/blendle/support) for some general
|
26
|
+
support/setup scripts.
|
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'cucumber'
|
4
|
+
require 'cucumber/rake/task'
|
5
|
+
require 'rubocop/rake_task'
|
6
|
+
require 'rake/testtask'
|
7
|
+
|
8
|
+
RuboCop::RakeTask.new
|
9
|
+
|
10
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
11
|
+
t.cucumber_opts = 'features --format pretty'
|
12
|
+
end
|
13
|
+
|
14
|
+
Rake::TestTask.new(:test) do |test|
|
15
|
+
test.libs << 'test'
|
16
|
+
test.test_files = FileList['test/*_test.rb']
|
17
|
+
test.verbose = true
|
18
|
+
end
|
19
|
+
|
20
|
+
task default: [:rubocop, :test, :features]
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'cucumber/blendle/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'cucumber-blendle-steps'
|
8
|
+
spec.version = Cucumber::BlendleSteps::VERSION
|
9
|
+
spec.authors = ['Jean Mertz']
|
10
|
+
spec.email = %w(jean@blendle.com)
|
11
|
+
spec.summary = 'Cucumber steps used by all of Blendle Ruby projects'
|
12
|
+
spec.homepage = 'https://www.blendle.com'
|
13
|
+
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(features)/}) }
|
15
|
+
spec.bindir = 'bin'
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.require_paths = %w(lib)
|
18
|
+
|
19
|
+
spec.add_dependency 'activesupport'
|
20
|
+
spec.add_dependency 'cucumber'
|
21
|
+
spec.add_dependency 'halidator'
|
22
|
+
spec.add_dependency 'hyperresource'
|
23
|
+
spec.add_dependency 'json_spec'
|
24
|
+
spec.add_dependency 'minitest'
|
25
|
+
spec.add_dependency 'rspec-expectations'
|
26
|
+
spec.add_dependency 'rack-test'
|
27
|
+
spec.add_dependency 'rack'
|
28
|
+
|
29
|
+
spec.add_development_dependency 'bundler'
|
30
|
+
spec.add_development_dependency 'pry'
|
31
|
+
spec.add_development_dependency 'rake'
|
32
|
+
spec.add_development_dependency 'rubocop'
|
33
|
+
spec.add_development_dependency 'sequel'
|
34
|
+
spec.add_development_dependency 'sqlite3'
|
35
|
+
spec.add_development_dependency 'webmachine'
|
36
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'active_support/core_ext/hash/keys'
|
2
|
+
require 'active_support/core_ext/object/blank'
|
3
|
+
require 'active_support/core_ext/string/inflections'
|
4
|
+
|
5
|
+
# rubocop:disable Lint/Eval
|
6
|
+
# rubocop:disable Lint/UnusedBlockArgument
|
7
|
+
|
8
|
+
Given(/^the following (\S+) exist:$/) do |object, table|
|
9
|
+
table.hashes.each do |row|
|
10
|
+
assert eval("#{object.singularize.capitalize}.create(row.symbolize_keys)")
|
11
|
+
step %(the following #{object.singularize} should exist:), table([row.keys, row.values])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Then(/^the (\S+) with (\S+) "([^"]*)" should( not)? exist$/) do |object, attribute, negate, value|
|
16
|
+
assertion = negate ? 'blank?' : 'present?'
|
17
|
+
|
18
|
+
assert eval("#{object.capitalize}.first(attribute.to_sym => value).#{assertion}")
|
19
|
+
end
|
20
|
+
|
21
|
+
Then(/^the following (\S+) should( not)? exist:$/) do |object, negate, table|
|
22
|
+
assertion = negate ? 'blank?' : 'present?'
|
23
|
+
|
24
|
+
table.hashes.each do |row|
|
25
|
+
assert eval("#{object.capitalize}.first(row.symbolize_keys).#{assertion}")
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# rubocop:disable Metrics/LineLength
|
2
|
+
|
3
|
+
When(/^the client does a (GET|POST|DELETE) request to the "([^"]*)" resource$/) do |method, resource|
|
4
|
+
step %(the client does a #{method} request to the "#{resource}" resource with these parameters:), table([[]])
|
5
|
+
end
|
6
|
+
|
7
|
+
When(/^the client does a (GET|POST|DELETE) request to the "([^"]*)" resource with the template variable "([^"]*)" set to "([^"]*)"$/) do |method, resource, key, value|
|
8
|
+
tables = [%w(key value), [key, value]]
|
9
|
+
|
10
|
+
step %(the client does a #{method} request to the "#{resource}" resource with these parameters:), table(tables)
|
11
|
+
end
|
12
|
+
|
13
|
+
When(/^the client does a (GET|POST|DELETE) request to the "([^"]*)" resource with these parameters:$/) do |method, resource, table|
|
14
|
+
params = {}
|
15
|
+
current_accept_header = current_session.instance_variable_get(:@headers)['Accept']
|
16
|
+
|
17
|
+
step %(the client provides the header "Accept: application/hal+json")
|
18
|
+
body = JSON.parse(get('/api').body)
|
19
|
+
|
20
|
+
if current_accept_header
|
21
|
+
step %(the client provides the header "Accept: #{current_accept_header}")
|
22
|
+
end
|
23
|
+
|
24
|
+
table && table.hashes.each do |row|
|
25
|
+
params[row['key']] = row['value']
|
26
|
+
end
|
27
|
+
|
28
|
+
api = HyperResource.from_body(body)
|
29
|
+
url = api.send(resource, params).href
|
30
|
+
step %(the client does a #{method} request to "#{url}")
|
31
|
+
end
|
32
|
+
|
33
|
+
When(/^the client does a (GET|POST|DELETE) request to the "([^"]*)" resource with the following content:$/) do |method, resource, content|
|
34
|
+
body = JSON.parse(get('/api').body)
|
35
|
+
api = HyperResource.from_body(body)
|
36
|
+
url = api.send(resource, {}).href
|
37
|
+
|
38
|
+
step %(the client does a #{method} request to "#{url}" with the following content:), content
|
39
|
+
end
|
40
|
+
|
41
|
+
When(/^the client does a (POST|PUT) request to the "([^"]*)" resource with the template variable "([^"]*)" set to "([^"]*)" and the following content:$/) do |method, resource, key, value, content|
|
42
|
+
body = JSON.parse(get('/api').body)
|
43
|
+
api = HyperResource.from_body(body)
|
44
|
+
url = api.send(resource, key => value).href
|
45
|
+
|
46
|
+
step %(the client does a #{method} request to "#{url}" with the following content:), content
|
47
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# rubocop:disable Metrics/LineLength
|
2
|
+
|
3
|
+
require 'halidator'
|
4
|
+
require 'rack/utils'
|
5
|
+
|
6
|
+
When('the client does a GET request to "$1"') do |path|
|
7
|
+
get(path, {}, {})
|
8
|
+
end
|
9
|
+
|
10
|
+
When(/^the client provides the header ["']([^"']*)["']$/) do |header|
|
11
|
+
name, value = header.split(/\s*:\s*/)
|
12
|
+
header(name, value)
|
13
|
+
end
|
14
|
+
|
15
|
+
When(/^the client does a (POST|DELETE) request to "([^"]*)"$/) do |method, path|
|
16
|
+
send(method.downcase, path, {})
|
17
|
+
end
|
18
|
+
|
19
|
+
When(/^the client does a (POST|PUT) request to "([^"]*)" with the following content:$/) do |method, path, content|
|
20
|
+
send(method.downcase, path, content.strip)
|
21
|
+
end
|
22
|
+
|
23
|
+
Then(/^the status code should be "(\d+)" \((.+)\)/) do |status_code, status_message|
|
24
|
+
assert_equal status_code.to_i, last_response.status
|
25
|
+
assert_equal status_message, Rack::Utils::HTTP_STATUS_CODES[status_code.to_i]
|
26
|
+
end
|
27
|
+
|
28
|
+
Then('the response should contain the header "$" with value "$"') do |header, value|
|
29
|
+
assert_equal last_response.headers[header], value
|
30
|
+
end
|
31
|
+
|
32
|
+
Then(/^the response should be of type "([^"]*)" with content:$/) do |content_type, content|
|
33
|
+
dump last_response.body
|
34
|
+
|
35
|
+
assert_equal content_type, last_response.headers['Content-Type']
|
36
|
+
assert_equal content, last_response.body
|
37
|
+
end
|
38
|
+
|
39
|
+
Then(/^the response should be JSON:$/) do |json|
|
40
|
+
dump last_response.body
|
41
|
+
|
42
|
+
assert_equal last_response.headers['Content-Type'], 'application/json'
|
43
|
+
expect(last_response.body).to be_json_eql(json)
|
44
|
+
end
|
45
|
+
|
46
|
+
Then(%r{^the response should be HAL/JSON(?: \(disregarding values? of "([^"]*)"\))?:$}) do |disregard, json|
|
47
|
+
dump last_response.body
|
48
|
+
|
49
|
+
assert_match %r{^application/hal\+json(;.*)?$}, last_response.headers['Content-Type']
|
50
|
+
|
51
|
+
hal = Halidator.new(last_response.body)
|
52
|
+
assert hal.valid?, "Halidator errors: #{hal.errors.join(',')}"
|
53
|
+
|
54
|
+
match = be_json_eql(json)
|
55
|
+
if disregard.present?
|
56
|
+
disregard.split(',').each do |attribute|
|
57
|
+
match = match.excluding(attribute)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
expect(last_response.body).to match
|
62
|
+
end
|
63
|
+
|
64
|
+
Then(/^the response contains the "(.*?)" header with value "(.*?)"$/) do |header, value|
|
65
|
+
assert_equal value, last_response.headers[header]
|
66
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
# Dump a string/text to the clipboard or a file if the correct
|
4
|
+
# environment variable is set.
|
5
|
+
#
|
6
|
+
# Example:
|
7
|
+
# $ bundle exec cucumber DUMP=cb
|
8
|
+
#
|
9
|
+
def dump(data)
|
10
|
+
return unless ENV['DUMP']
|
11
|
+
require 'mkmf'
|
12
|
+
if %w(clipboard cb).include?(ENV['DUMP']) && find_executable('pbcopy')
|
13
|
+
IO.popen(['pbcopy'], 'w') { |f| f << pretty_sorted_json(data) }
|
14
|
+
elsif %w(file tmp).include?(ENV['DUMP'])
|
15
|
+
File.open('/tmp/dump', 'w') { |f| f << pretty_sorted_json(data) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def pretty_sorted_json(data)
|
20
|
+
hash = JSON.parse(data)
|
21
|
+
hash = prettify_hash(hash)
|
22
|
+
|
23
|
+
JSON.pretty_generate(hash)
|
24
|
+
rescue
|
25
|
+
data
|
26
|
+
end
|
27
|
+
|
28
|
+
def prettify_hash(hash)
|
29
|
+
hash.each do |k, v|
|
30
|
+
if v.is_a?(Array)
|
31
|
+
hash[k] = v.map { |a| a.is_a?(Hash) ? prettify_hash(a) : a }
|
32
|
+
elsif v.is_a?(Hash)
|
33
|
+
hash[k] = prettify_hash(v)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
hash = unshift_hash_key('_embedded', hash)
|
38
|
+
hash = unshift_hash_key('_links', hash)
|
39
|
+
|
40
|
+
hash
|
41
|
+
end
|
42
|
+
|
43
|
+
def unshift_hash_key(key, hash)
|
44
|
+
return hash unless hash[key]
|
45
|
+
|
46
|
+
data = hash.delete(key)
|
47
|
+
{ key => data }.merge(hash)
|
48
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'cucumber/blendle/support/dump'
|
2
|
+
require 'cucumber/blendle/support/hyper_resource'
|
3
|
+
require 'cucumber/blendle/support/json_spec'
|
4
|
+
require 'cucumber/blendle/support/minitest'
|
5
|
+
require 'cucumber/blendle/support/rack_test'
|
6
|
+
|
7
|
+
require 'cucumber/blendle/steps/model_steps'
|
8
|
+
require 'cucumber/blendle/steps/resource_steps'
|
9
|
+
require 'cucumber/blendle/steps/rest_steps'
|
metadata
ADDED
@@ -0,0 +1,287 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cucumber-blendle-steps
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jean Mertz
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cucumber
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: halidator
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hyperresource
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json_spec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-expectations
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rack-test
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rack
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: bundler
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: pry
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rake
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rubocop
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: sequel
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: sqlite3
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: webmachine
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
description:
|
238
|
+
email:
|
239
|
+
- jean@blendle.com
|
240
|
+
executables: []
|
241
|
+
extensions: []
|
242
|
+
extra_rdoc_files: []
|
243
|
+
files:
|
244
|
+
- ".gitignore"
|
245
|
+
- ".hubbit.yml"
|
246
|
+
- ".rubocop.yml"
|
247
|
+
- ".wercker.yml"
|
248
|
+
- CHANGELOG.md
|
249
|
+
- Gemfile
|
250
|
+
- README.md
|
251
|
+
- Rakefile
|
252
|
+
- cucumber-blendle-steps.gemspec
|
253
|
+
- lib/cucumber/blendle/steps/model_steps.rb
|
254
|
+
- lib/cucumber/blendle/steps/resource_steps.rb
|
255
|
+
- lib/cucumber/blendle/steps/rest_steps.rb
|
256
|
+
- lib/cucumber/blendle/support/dump.rb
|
257
|
+
- lib/cucumber/blendle/support/hyper_resource.rb
|
258
|
+
- lib/cucumber/blendle/support/json_spec.rb
|
259
|
+
- lib/cucumber/blendle/support/minitest.rb
|
260
|
+
- lib/cucumber/blendle/support/rack_test.rb
|
261
|
+
- lib/cucumber/blendle/version.rb
|
262
|
+
- lib/cucumber/blendle_steps.rb
|
263
|
+
homepage: https://www.blendle.com
|
264
|
+
licenses: []
|
265
|
+
metadata: {}
|
266
|
+
post_install_message:
|
267
|
+
rdoc_options: []
|
268
|
+
require_paths:
|
269
|
+
- lib
|
270
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
271
|
+
requirements:
|
272
|
+
- - ">="
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: '0'
|
275
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '0'
|
280
|
+
requirements: []
|
281
|
+
rubyforge_project:
|
282
|
+
rubygems_version: 2.4.5.1
|
283
|
+
signing_key:
|
284
|
+
specification_version: 4
|
285
|
+
summary: Cucumber steps used by all of Blendle Ruby projects
|
286
|
+
test_files: []
|
287
|
+
has_rdoc:
|