mini-apivore 0.1.1 → 0.1.6

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
- SHA1:
3
- metadata.gz: d85e7dd24101374365786adc9d1ce7a9469f363d
4
- data.tar.gz: f8bcddf844b25c03a5ee142b456be5c4e7547bbe
2
+ SHA256:
3
+ metadata.gz: 4ad2464e8b3fd7ee8a526be861274f0bbcb542b52bd20fb835a6764fa8a950bf
4
+ data.tar.gz: 0d0b55d3bdbab2f9a8b47ac0d4db64d4c29472a8bf0acb4307452f9032e82cef
5
5
  SHA512:
6
- metadata.gz: 18f366be86dce400f03e53cef246c58e3a65df998e2c72ca8b3fb603cdf01dcf8ff64a8f6e90db3567a1b76ed3e8c783b98bf6c247a7c05f72e2e8b1bcf212f3
7
- data.tar.gz: 6ce510195a00e5337cdda680983a0372d9cc11260ba7fac39fd2f1711149b1b8d8db82ff7e835a126a3993643b9da81a77713af2184e81e51409bd38bb032812
6
+ metadata.gz: 5ca23557ea0574db7b7300018ace97dc88c541e7fc3320ccbae6785cd074c4077c93e7b77c8ada7ecdaba1a794a41bc2acba369189a638dbdebdaddfb4da52ed
7
+ data.tar.gz: e0858db6b83b7e1fc8b748cc3e8660462b741bfce912de8387532979ab6de95d0fb9e6650238e7026ba9c77218eb8a7e65067bdfa03b92e5f99db87334278b1a
@@ -5,6 +5,7 @@ require 'mini_apivore/swagger'
5
5
  require 'mini_apivore/swagger_checker'
6
6
  require 'mini_apivore/validation'
7
7
  require 'mini_apivore/http_codes'
8
+ require 'mini_apivore/to_param'
8
9
 
9
10
  module MiniApivore
10
11
  SWAGGER_CHECKERS = {}
@@ -6,4 +6,5 @@ module MiniApivore
6
6
  FORBIDDEN = 403 # Access denied
7
7
  UNPROCESSABLE_ENTITY = 422
8
8
  OK = 200
9
+ NO_CONTENT = 204
9
10
  end
@@ -0,0 +1,84 @@
1
+ require "cgi"
2
+
3
+ class Object
4
+ # Alias of <tt>to_s</tt>.
5
+ def to_param
6
+ to_s
7
+ end
8
+
9
+ # Converts an object into a string suitable for use as a URL query string,
10
+ # using the given <tt>key</tt> as the param name.
11
+ def to_query(key)
12
+ "#{CGI.escape(key.to_param)}=#{CGI.escape(to_param.to_s)}"
13
+ end
14
+ end unless Object.method_defined?( :to_param )
15
+
16
+ class NilClass
17
+ # Returns +self+.
18
+ def to_param
19
+ self
20
+ end
21
+ end unless NilClass.method_defined?( :to_param )
22
+
23
+ class TrueClass
24
+ # Returns +self+.
25
+ def to_param
26
+ self
27
+ end
28
+ end unless TrueClass.method_defined?( :to_param )
29
+
30
+ class FalseClass
31
+ # Returns +self+.
32
+ def to_param
33
+ self
34
+ end
35
+ end unless FalseClass.method_defined?( :to_param )
36
+
37
+ class Array
38
+ # Calls <tt>to_param</tt> on all its elements and joins the result with
39
+ # slashes. This is used by <tt>url_for</tt> in Action Pack.
40
+ def to_param
41
+ collect(&:to_param).join "/"
42
+ end
43
+
44
+ # Converts an array into a string suitable for use as a URL query string,
45
+ # using the given +key+ as the param name.
46
+ #
47
+ # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding"
48
+ def to_query(key)
49
+ prefix = "#{key}[]"
50
+
51
+ if empty?
52
+ nil.to_query(prefix)
53
+ else
54
+ collect { |value| value.to_query(prefix) }.join "&"
55
+ end
56
+ end
57
+ end unless Array.method_defined?( :to_param )
58
+
59
+ class Hash
60
+ # Returns a string representation of the receiver suitable for use as a URL
61
+ # query string:
62
+ #
63
+ # {name: 'David', nationality: 'Danish'}.to_query
64
+ # # => "name=David&nationality=Danish"
65
+ #
66
+ # An optional namespace can be passed to enclose key names:
67
+ #
68
+ # {name: 'David', nationality: 'Danish'}.to_query('user')
69
+ # # => "user%5Bname%5D=David&user%5Bnationality%5D=Danish"
70
+ #
71
+ # The string pairs "key=value" that conform the query string
72
+ # are sorted lexicographically in ascending order.
73
+ #
74
+ # This method is also aliased as +to_param+.
75
+ def to_query(namespace = nil)
76
+ collect do |key, value|
77
+ unless (value.is_a?(Hash) || value.is_a?(Array)) && value.empty?
78
+ value.to_query(namespace ? "#{namespace}[#{key}]" : key)
79
+ end
80
+ end.compact.sort! * "&"
81
+ end
82
+
83
+ alias_method :to_param, :to_query
84
+ end unless Hash.method_defined?( :to_param )
@@ -20,7 +20,12 @@ module MiniApivore
20
20
 
21
21
  def check_route( verb, path, expected_response_code, params = {} )
22
22
  prepare_action_env( verb, path, expected_response_code, params )
23
- assert( match?, failure_message )
23
+ assert( match?, <<FAIL )
24
+ Failed at: #{Thread.current.backtrace[1]}\n
25
+ Failure message: #{failure_message},\n
26
+ fullpath: #{full_path}, \n
27
+ params causing failure:#{params}
28
+ FAIL
24
29
  end
25
30
 
26
31
  def match?
@@ -82,7 +87,7 @@ module MiniApivore
82
87
  key = param.first
83
88
  dkey = data && ( data[key] || data[key.to_sym] )
84
89
  if dkey
85
- path = path.gsub "{#{key}}", dkey.to_s
90
+ path = path.gsub "{#{key}}", dkey.to_param
86
91
  else
87
92
  raise URI::InvalidURIError, "No substitution data found for {#{key}}"\
88
93
  " to test the path #{path}.", caller
@@ -1,5 +1,5 @@
1
1
  module Mini
2
2
  module Apivore
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.6"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini-apivore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - alekseyl
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-03 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '10.3'
75
+ version: 12.3.3
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '10.3'
82
+ version: 12.3.3
83
83
  description: " Minitest adaptation of apivore gem,\n Provides
84
84
  a tool for testing your application api against your swagger schema "
85
85
  email:
@@ -96,6 +96,7 @@ files:
96
96
  - lib/mini_apivore/http_codes.rb
97
97
  - lib/mini_apivore/swagger.rb
98
98
  - lib/mini_apivore/swagger_checker.rb
99
+ - lib/mini_apivore/to_param.rb
99
100
  - lib/mini_apivore/validation.rb
100
101
  - lib/mini_apivore/version.rb
101
102
  homepage: https://github.com/alekseyl/mini-apivore
@@ -120,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
121
  version: '0'
121
122
  requirements: []
122
123
  rubyforge_project:
123
- rubygems_version: 2.6.13
124
+ rubygems_version: 2.7.6
124
125
  signing_key:
125
126
  specification_version: 4
126
127
  summary: Minitest adaptation of an apivore gem