cucumber-api 0.4 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ee88961920f3ccbf02d62d5ea0c7343d2f483f0
4
- data.tar.gz: 5967edd044ec97f27368cf5a4c4a187004508fc5
3
+ metadata.gz: 5ab71054d422abc7b72e2d09c7adbf2676cd8257
4
+ data.tar.gz: e91f8ac5a16ab3ee55ccf3fdaa8eb0e7e00e8ba5
5
5
  SHA512:
6
- metadata.gz: b8c3e01637543cf39ad990443fb82759520b4412d5da5d6c45e1a73036d8401930af194f67e3600ea131bc10753ee27b40137213aaabc54915c6b571e349d8ca
7
- data.tar.gz: b1d4cbd828bbb829706ce0124e0a9e500f42cc2e1cc309b660e898797cd747f81c4806a20afd32d0ad8267cd87989dc9af22b2760dd5fb85f07be544a86aa5bd
6
+ metadata.gz: bd01e8b2d5fa19c1f38c04516a44dcc8350eda852ed6f82961fe7e4449b05edd90c3226117f75185afed747aa1e4d209e0beec817bdf40c827069cb698972fba
7
+ data.tar.gz: 30059e7bfc54c7eaf8742c0a7a851cc1ad1319208a311f0de57bd9947cd03a16c9d70299129db17e53eee44272bfccc2b7f74e63d250f97573ba78774a681e37
data/.travis.yml CHANGED
@@ -1,2 +1,14 @@
1
1
  language: ruby
2
- script: "cucumber -p verbose"
2
+ sudo: false
3
+
4
+ rvm:
5
+ - 2.3
6
+ - 2.4
7
+ - ruby-head
8
+
9
+ matrix:
10
+ allow_failures:
11
+ - ruby-head
12
+
13
+ script: "cucumber -p verbose"
14
+
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Build Status](https://travis-ci.org/hidroh/cucumber-api.svg?branch=master)](https://travis-ci.org/hidroh/cucumber-api) [![Gem Version](https://badge.fury.io/rb/cucumber-api.svg)](http://badge.fury.io/rb/cucumber-api) [![Dependency Status](https://gemnasium.com/hidroh/cucumber-api.svg)](https://gemnasium.com/hidroh/cucumber-api)
3
3
  [![Code Climate](https://codeclimate.com/github/hidroh/cucumber-api/badges/gpa.svg)](https://codeclimate.com/github/hidroh/cucumber-api) [![Total Downloads](http://ruby-gem-downloads-badge.herokuapp.com/cucumber-api?type=total)](https://rubygems.org/gems/cucumber-api)
4
4
 
5
- API validator in BBD style with [Cucumber](https://cukes.info/). **cucumber-api** lets one validate public APIs JSON response in blazingly fast time.
5
+ API validator in BDD style with [Cucumber](https://cukes.info/). **cucumber-api** lets one validate public APIs JSON response in blazingly fast time.
6
6
 
7
7
  Inspired by [cucumber-api-steps](https://github.com/jayzes/cucumber-api-steps).
8
8
 
data/cucumber-api.gemspec CHANGED
@@ -13,11 +13,12 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{cucumber-api allows API JSON response validation and verification in BDD style.}
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.require_paths = ["lib"]
16
- s.required_ruby_version = '>= 1.9.3'
16
+ s.required_ruby_version = '>= 2.3.0'
17
17
  s.license = 'Apache-2.0'
18
18
 
19
- s.add_dependency('cucumber', '~> 2.0')
20
- s.add_dependency('jsonpath', '~> 0.5')
21
- s.add_dependency('rest-client', '~> 1.8')
22
- s.add_dependency('json-schema', '~> 2.5')
23
- end
19
+ s.add_dependency('addressable', '2.5')
20
+ s.add_dependency('cucumber', '~> 3.1.0')
21
+ s.add_dependency('jsonpath', '~> 0.8')
22
+ s.add_dependency('rest-client', '~> 2.0.2')
23
+ s.add_dependency('json-schema', '~> 2.8.0')
24
+ end
@@ -0,0 +1,21 @@
1
+ module CucumberApi
2
+ module Helpers
3
+ # Bind grabbed values into placeholders in given URL
4
+ # Ex: http://example.com?id={id} with {id => 1} becomes http://example.com?id=1
5
+ # @param url [String] parameterized URL with placeholders
6
+ # @return [String] binded URL or original URL if no placeholders
7
+ def resolve url
8
+ url.gsub!(/\{([a-zA-Z0-9_]+)\}/) do |s|
9
+ s.gsub!(/[\{\}]/, '')
10
+ if instance_variable_defined?("@#{s}")
11
+ instance_variable_get("@#{s}")
12
+ else
13
+ raise 'Did you forget to "grab" ' + s + '?'
14
+ end
15
+ end
16
+ url
17
+ end
18
+ end
19
+ end
20
+
21
+ World(CucumberApi::Helpers)
@@ -6,9 +6,6 @@ module CucumberApi
6
6
 
7
7
  # Extension of {RestClient::Response} with support for JSON path traversal and validation
8
8
  module Response
9
-
10
- include RestClient::Response
11
-
12
9
  # Create a Response with JSON path support
13
10
  # @param response [RestClient::Response] original response
14
11
  # @return [Response] self
@@ -115,5 +112,6 @@ module CucumberApi
115
112
  ''
116
113
  end
117
114
  end
115
+ RestClient::Response.send(:include, self)
118
116
  end
119
117
  end
@@ -1,4 +1,5 @@
1
1
  require 'cucumber-api/response'
2
+ require 'cucumber-api/helpers'
2
3
  require 'rest-client'
3
4
  require 'json-schema'
4
5
 
@@ -174,20 +175,3 @@ Then(/^the JSON response should have "([^"]*)" of type \
174
175
  (numeric|string|boolean|numeric_string) and value "([^"]*)"$/) do |json_path, type, value|
175
176
  @response.get_as_type_and_check_value json_path, type, resolve(value)
176
177
  end
177
-
178
- # Bind grabbed values into placeholders in given URL
179
- # Ex: http://example.com?id={id} with {id => 1} becomes http://example.com?id=1
180
- # @param url [String] parameterized URL with placeholders
181
- # @return [String] binded URL or original URL if no placeholders
182
- def resolve url
183
- url.gsub!(/\{([a-zA-Z0-9_]+)\}/) do |s|
184
- s.gsub!(/[\{\}]/, '')
185
- if instance_variable_defined?("@#{s}")
186
- instance_variable_get("@#{s}")
187
- else
188
- raise 'Did you forget to "grab" ' + s + '?'
189
- end
190
- end
191
- url
192
- end
193
-
@@ -1,3 +1,3 @@
1
1
  module CucumberApi
2
- VERSION = "0.4"
3
- end
2
+ VERSION = "0.5"
3
+ end
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ha Duy Trung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-03 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: addressable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: '2.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: '2.5'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: cucumber
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '2.0'
33
+ version: 3.1.0
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '2.0'
40
+ version: 3.1.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: jsonpath
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0.5'
47
+ version: '0.8'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '0.5'
54
+ version: '0.8'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rest-client
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '1.8'
61
+ version: 2.0.2
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '1.8'
68
+ version: 2.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: json-schema
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '2.5'
75
+ version: 2.8.0
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '2.5'
82
+ version: 2.8.0
69
83
  description: cucumber-api allows API JSON response validation and verification in
70
84
  BDD style.
71
85
  email:
@@ -86,6 +100,7 @@ files:
86
100
  - features/schemas/topstories.json
87
101
  - features/support/env.rb
88
102
  - lib/cucumber-api.rb
103
+ - lib/cucumber-api/helpers.rb
89
104
  - lib/cucumber-api/response.rb
90
105
  - lib/cucumber-api/steps.rb
91
106
  - lib/cucumber-api/version.rb
@@ -101,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
116
  requirements:
102
117
  - - ">="
103
118
  - !ruby/object:Gem::Version
104
- version: 1.9.3
119
+ version: 2.3.0
105
120
  required_rubygems_version: !ruby/object:Gem::Requirement
106
121
  requirements:
107
122
  - - ">="