svelte 0.1.5 → 0.2.0

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: 34985e40ff2a86ef17d228ab1c04e74bde632888
4
- data.tar.gz: 0114b3e093c16fcc4c019d5b5916f1ed74974d60
2
+ SHA256:
3
+ metadata.gz: a8aabcb7e5bafe83a0ad58ec737e2714afc5b2a6cb11264755dda73d2fd23a41
4
+ data.tar.gz: 96215b0581084eb9d196838ab9ef329030ec6e1cb80103a6b6e9ae0c15627ffd
5
5
  SHA512:
6
- metadata.gz: 69c540bdc0cdc5ab6b67a116ab5e268595bcaae8f06ad93e3867a8dece5df983b8bb382f90c2772234f033bb15a0960352a58419c518d0cc633d98e2097e7c83
7
- data.tar.gz: 1fac84c0b573096562341b87fbfe7eac7a0fef2001d0ca100333b6f444cccd32b3ed11e5b2d8d6663e671138a63bbf6dfb01bcfb98038c5ca906f87794742b63
6
+ metadata.gz: 2324bc8a06b283b780e6cff3f711609de82c0e1f06e504baaad12cf0200ef2a31ccf05c0027e785f1a00f9b542d5a8dfa2f868385cd6758928463a96eae4aca3
7
+ data.tar.gz: 92d72d2a0538d3aee9eb6e27826812dc489e0fb6ff3c200a2cb543e817d146a7756d833131c50c2df678ce42505d59c795b897e3e27b89c6269b4e951f9d8af7
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
  /tmp/
11
11
  .tags
12
12
  .DS_Store
13
+ vendor/bundle
14
+ tags
data/.rubocop.yml CHANGED
@@ -1,2 +1,2 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.2
2
+ TargetRubyVersion: 2.6
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.0
1
+ 2.6.0
data/.travis.yml CHANGED
@@ -1,9 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - '2.1'
4
- - '2.2'
5
- - '2.3.0'
6
3
  - '2.4.2'
4
+ - '2.5.1'
5
+ - '2.6.0'
7
6
  env:
8
7
  global:
9
8
  - CC_TEST_REPORTER_ID=b82d06c331e2b020fe95a3f884bfb04134156d8c2f740d570eeb550130506e22
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in svelte.gemspec
data/README.md CHANGED
@@ -6,6 +6,8 @@ It reads a Swagger specification file in JSON, and automatically generates Resou
6
6
 
7
7
  [![Build Status](https://secure.travis-ci.org/notonthehighstreet/svelte.png?branch=master)](http://travis-ci.org/notonthehighstreet/svelte)
8
8
  [![Code Climate](https://codeclimate.com/github/notonthehighstreet/svelte/badges/gpa.svg)](https://codeclimate.com/github/notonthehighstreet/svelte)
9
+ [![Depfu](https://badges.depfu.com/badges/b93998f152cc3865465c6de0d7284248/overview.svg)](https://depfu.com/github/notonthehighstreet/svelte?project_id=6754)
10
+ [![Depfu](https://badges.depfu.com/badges/b93998f152cc3865465c6de0d7284248/count.svg)](https://depfu.com/github/notonthehighstreet/svelte?project_id=6754)
9
11
 
10
12
  ## Installation
11
13
 
@@ -184,7 +186,41 @@ view.valid? # true
184
186
  view.as_json # {:currencyCode=>"GBP", :amount=>40.0}
185
187
  ```
186
188
 
187
- ### Options
189
+ ### Service Options
190
+
191
+ When creating a client from the API spec, you can pass an `options` hash that will determine how the HTTP client interacts with your service.
192
+
193
+ ```ruby
194
+ Svelte::Service.create(
195
+ url: "http://path/to/swagger/spec/resource.json",
196
+ module_name: 'PetStore',
197
+ options: {
198
+ host: 'somehost.com',
199
+ base_path: '/api/v1',
200
+ protocol: 'https',
201
+ auth: {
202
+ basic: {
203
+ username: "user",
204
+ password: "pass"
205
+ }
206
+ },
207
+ headers: {
208
+ runas: 'otheruser'
209
+ }
210
+ })
211
+ ```
212
+
213
+ The available options are:
214
+ - `host` : overrides the `host` value found in the Swagger API spec, used when making API requests
215
+ - `base_path` : overrides the `basePath` value found in the Swagger API spec, used when making API requests
216
+ - `protocol` : overrides the network protocol used (default value is "http" when not present)
217
+ - `auth` : sets optional authorization headers. Possible values:
218
+ - `{ basic: { username: "value", password: "value" } }` : sets basic authentication credentials
219
+ - `{ token: "Bearer 12345" }` : sets a generic Authorization header (in this case a Bearer token `12345`)
220
+ - `headers` : a collection of arbitrary key/value pairs converted to HTTP request headers included with each outgoing request
221
+
222
+
223
+ ### Request Options
188
224
 
189
225
  You can specify a timeout option on a per request basis. If the request times out a `Svelte::TimeoutError` exception
190
226
  will be raised.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'svelte'
data/lib/svelte.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'svelte/version'
3
5
  require 'svelte/string_manipulator'
@@ -29,6 +31,13 @@ module Svelte
29
31
  # @param json [String] the entire Swagger spec as a String
30
32
  # @param module_name [String] constant name where you want Svelte to build
31
33
  # the new functionality on top of
34
+ # @param options [Hash] configuration options when making HTTP requests
35
+ # Supported values are:
36
+ # :auth [Hash] either { token: "value" } or { basic: { username: "value", password: "value" }}
37
+ # :headers [Hash] HTTP request headers
38
+ # :host [String] overrides the "host" value in the Swagger spec
39
+ # :base_path [String] overrides the "basePath" value in the Swagger spec
40
+ # :protocol [String] overrides the network protocol used (defaults to "http")
32
41
  # @note Either `url` or `json` need to be provided. `url` will take
33
42
  # precedence over `json`
34
43
  def self.create(url: nil, json: nil, module_name:, options: {})
@@ -1,14 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Holds miscelanious configuration options for the current
3
5
  # Swagger API specification
4
6
  class Configuration
5
- attr_reader :host, :base_path, :protocol
7
+ attr_reader :host, :base_path, :protocol, :headers
6
8
  # Creates a new Configuration instance
7
9
  # @param options [Hash] configuration options
8
10
  def initialize(options:)
9
11
  @host = options[:host]
10
12
  @base_path = options[:base_path]
11
13
  @protocol = options[:protocol] || default_protocol
14
+ @headers = options[:headers]
12
15
  end
13
16
 
14
17
  private
data/lib/svelte/errors.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'svelte/errors/http_error'
2
4
  require 'svelte/errors/json_error'
3
5
  require 'svelte/errors/parameter_error'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Svelte error class to represent networking errors
3
5
  # It can be customized by passing a specific errror message and
@@ -11,7 +13,7 @@ module Svelte
11
13
  # @param parent the parent exception
12
14
  def initialize(message: nil, parent: nil)
13
15
  @parent = parent
14
- super(message || (parent && parent.message))
16
+ super(message || (parent&.message))
15
17
  end
16
18
  end
17
19
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Svelte error class to represent JSON errors
3
5
  class JSONError < StandardError; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Svelte error class to represent parameter errors. For example
3
5
  # when a request is made and some required parameters are missing
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Svelte error class to represent version errors.
3
5
  # Raised when a Swagger v1 JSON is fed into Svelte
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Class that handles the actual execution of dynamically generated operations
3
5
  # Each created operation will eventually call this class in order to make the
@@ -17,10 +19,12 @@ module Svelte
17
19
  parameters: parameters)
18
20
  request_parameters = clean_parameters(path: path,
19
21
  parameters: parameters)
22
+ request_options = build_request_options(configuration: configuration,
23
+ options: options)
20
24
  RestClient.call(verb: verb,
21
25
  url: url,
22
26
  params: request_parameters,
23
- options: options)
27
+ options: request_options)
24
28
  end
25
29
 
26
30
  private
@@ -30,9 +34,7 @@ module Svelte
30
34
  protocol = configuration.protocol
31
35
  host = configuration.host
32
36
  base_path = configuration.base_path
33
- if base_path == '/'
34
- base_path = ''
35
- end
37
+ base_path = '' if base_path == '/'
36
38
  "#{protocol}://#{host}#{base_path}#{url_path}"
37
39
  end
38
40
 
@@ -55,6 +57,14 @@ module Svelte
55
57
  end
56
58
  clean_parameters
57
59
  end
60
+
61
+ def build_request_options(configuration:, options:)
62
+ if configuration.headers&.any?
63
+ return (options || {}).merge(headers: configuration.headers)
64
+ end
65
+
66
+ options
67
+ end
58
68
  end
59
69
  end
60
70
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'svelte/model_factory/parameter'
2
4
 
3
5
  module Svelte
@@ -11,6 +13,7 @@ module Svelte
11
13
  # @return [Hash] A hash of model names to models created
12
14
  def define_models(json)
13
15
  return unless json
16
+
14
17
  models = {}
15
18
  model_definitions = json['definitions']
16
19
  model_definitions.each do |model_name, parameters|
@@ -83,6 +86,7 @@ module Svelte
83
86
  required_nested_models = nested_models.keys & required_attributes
84
87
  nested_models.each do |nested_model_name, nested_model_info|
85
88
  return unless required_nested_models.include?(nested_model_name)
89
+
86
90
  nested_class_name = public_send("#{nested_model_name}=",
87
91
  nested_model_info['$ref']
88
92
  .split('/').last)
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  module ModelFactory
3
5
  # Helper class to wrap around all parameters
4
6
  class Parameter
5
-
6
7
  # Constant to represent an unset parameter
7
8
  UNSET = Class.new
8
9
 
@@ -83,11 +84,13 @@ module Svelte
83
84
  def validate_required
84
85
  return true unless @required
85
86
  return false if unset?
87
+
86
88
  true
87
89
  end
88
90
 
89
91
  def validate_value_in_enum
90
92
  return true if @permitted_values.empty?
93
+
91
94
  @permitted_values.include?(value)
92
95
  end
93
96
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Describes a Swagger API Operation
3
5
  class Operation
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Dynamically builds Swagger API operations on top of a given module
3
5
  class OperationBuilder
@@ -15,7 +17,8 @@ module Svelte
15
17
  path: operation.path,
16
18
  configuration: configuration,
17
19
  parameters: builder.request_parameters(full_parameters: parameters),
18
- options: builder.options(full_parameters: parameters))
20
+ options: builder.options(full_parameters: parameters)
21
+ )
19
22
  end
20
23
  end
21
24
 
@@ -28,6 +31,7 @@ module Svelte
28
31
  # @note All keys will be transformed from `Symbol` to `String`
29
32
  def request_parameters(full_parameters:)
30
33
  return {} if full_parameters.compact.empty?
34
+
31
35
  full_parameters.first.inject({}) do |memo, (k, v)|
32
36
  memo.merge!(k.to_s => v)
33
37
  end
data/lib/svelte/path.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Describes a Swagger API Path
3
5
  class Path
@@ -34,7 +36,7 @@ module Svelte
34
36
 
35
37
  def validate_operations
36
38
  unless @raw_operations.is_a?(Hash)
37
- raise JSONError, "Expected the path to contain a list of operations"
39
+ raise JSONError, 'Expected the path to contain a list of operations'
38
40
  end
39
41
  end
40
42
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Dynamically builds a module hierarchy on top of a given module
3
5
  # based on the given Path
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
  require 'faraday_middleware'
3
5
  require 'typhoeus'
@@ -7,7 +9,6 @@ module Svelte
7
9
  # Rest client to make requests to the service endpoints
8
10
  class RestClient
9
11
  class << self
10
-
11
12
  # Makes an http call to a given REST endpoint
12
13
  # @param verb [String] http verb to use for the request
13
14
  # (`get`, `post`, `put`, etc.)
@@ -21,6 +22,7 @@ module Svelte
21
22
  def call(verb:, url:, params: {}, options: {})
22
23
  connection.send verb, url, params do |request|
23
24
  request.options.timeout = options[:timeout] if options[:timeout]
25
+ options[:headers]&.each { |key, value| request.headers[key] = value }
24
26
  end
25
27
  rescue Faraday::TimeoutError => e
26
28
  raise HTTPError.new(parent: e)
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'base64'
4
+
1
5
  module Svelte
2
6
  # Dynamically generates a client to consume a Swagger API
3
7
  class Service
@@ -7,6 +11,9 @@ module Svelte
7
11
  # @param json [String] full Swagger API spec as a String
8
12
  # @param module_name [String] constant name where Svelte will
9
13
  # build the functionality on top of
14
+ # @param options [Hash] options passed as configuration to the
15
+ # generated Swagger objects. :auth options will also be
16
+ # used here when making the initial Swagger spec request.
10
17
  # @return [Module] A newly created `Module` with the
11
18
  # module hierarchy and methods to consume the Swagger API
12
19
  # The new module will be built on top of `Svelte::Service` and will
@@ -17,22 +24,49 @@ module Svelte
17
24
  # @note Either `url` or `json` need to be provided. `url` will take
18
25
  # precedence over `json`
19
26
  def create(url: nil, json: nil, module_name:, options: {})
20
- json = get_json(url: url) if url
27
+ headers = build_headers(options: options)
28
+ json = get_json(url: url, headers: headers) if url
29
+
21
30
  SwaggerBuilder.new(raw_hash: JSON.parse(json.to_s),
22
31
  module_name: module_name,
23
- options: options).make_resource
32
+ options: options,
33
+ headers: headers).make_resource
24
34
  end
25
35
 
26
36
  private
27
37
 
28
- def get_json(url:)
29
- Faraday.get(url).body
38
+ def get_json(url:, headers:)
39
+ connection = Faraday.new(url: url)
40
+ headers.each { |key, value| connection.headers[key] = value }
41
+ connection.get.body
30
42
  rescue Faraday::ClientError => e
31
43
  raise HTTPError.new(
32
44
  message: "Could not get API json from #{url}",
33
45
  parent: e
34
46
  )
35
47
  end
48
+
49
+ def build_headers(options:)
50
+ headers = options[:headers].is_a?(Hash) ? options[:headers].clone : {}
51
+
52
+ if options[:auth]
53
+ basic = options[:auth][:basic]
54
+ token = options[:auth][:token]
55
+
56
+ if basic
57
+ credentials = Base64.encode64([
58
+ basic[:username],
59
+ basic[:password]
60
+ ].join(':')).chomp
61
+
62
+ headers['Authorization'] = "Basic #{credentials}"
63
+ elsif token
64
+ headers['Authorization'] = token
65
+ end
66
+ end
67
+
68
+ headers
69
+ end
36
70
  end
37
71
  end
38
72
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Provides helper methods to manipulate strings in order to generate
3
5
  # valid constant and method names from them
@@ -43,9 +45,7 @@ module Svelte
43
45
 
44
46
  def pascalize(string)
45
47
  string.split('-').map do |dash|
46
- dash.split('_').map do |underscore|
47
- underscore.split
48
- end.flatten
48
+ dash.split('_').map(&:split).flatten
49
49
  end.flatten.map(&method(:capitalize_first_char)).join
50
50
  end
51
51
 
@@ -54,8 +54,8 @@ module Svelte
54
54
  end
55
55
 
56
56
  def snakify(string)
57
- string.gsub(/\s+/, '_').
58
- gsub('-', '_').
57
+ string.gsub(/\s+/, '_')
58
+ .gsub('-', '_').
59
59
  # This first regex handles the case of a string ending in an acroynm
60
60
  gsub(/([a-z])([A-Z]+)\z/, '\1_\2').
61
61
  # This regex then handles acronyms in other places, including at
@@ -1,17 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Dynamically builds Swagger API paths and operations on top of a given module
3
5
  class SwaggerBuilder
4
- attr_reader :raw_hash, :module_name, :configuration
6
+ attr_reader :raw_hash, :module_name, :configuration, :headers
5
7
 
6
8
  # Creates a new SwaggerBuilder
7
9
  # @param raw_hash [Hash] Swagger API definition
8
10
  # @param module_name [String] name of the constant you want built
9
11
  # @param options [Hash] Swagger API options. It will be used to build the
10
- # [Configuration]. Supports the `:host` value for now.
11
- def initialize(raw_hash:, module_name:, options:)
12
+ # [Configuration]. Supported values: ":host", ":base_path", ":protocol"
13
+ # @param headers [Hash] REST client HTTP request headers
14
+ def initialize(raw_hash:, module_name:, options:, headers:)
12
15
  @raw_hash = raw_hash
13
16
  @module_name = module_name
14
- @configuration = build_configuration(options)
17
+ @configuration = build_configuration(options, headers)
18
+ @headers = headers
15
19
  validate
16
20
  end
17
21
 
@@ -51,11 +55,12 @@ module Svelte
51
55
 
52
56
  private
53
57
 
54
- def build_configuration(_options)
58
+ def build_configuration(_options, headers)
55
59
  options = {
56
- host: host,
57
- base_path: base_path,
58
- protocol: _options[:protocol]
60
+ host: _options[:host] || host,
61
+ base_path: _options[:base_path] || base_path,
62
+ protocol: _options[:protocol],
63
+ headers: headers || {}
59
64
  }
60
65
  Configuration.new(options: options)
61
66
  end
@@ -68,9 +73,7 @@ module Svelte
68
73
  end
69
74
 
70
75
  def validate_version
71
- if raw_hash['swagger'] != '2.0'
72
- raise VersionError
73
- end
76
+ raise VersionError if raw_hash['swagger'] != '2.0'
74
77
  end
75
78
 
76
79
  def validate_paths
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Svelte
2
4
  # Version
3
- VERSION = '0.1.5'.freeze
5
+ VERSION = '0.2.0'
4
6
  end
data/svelte.gemspec CHANGED
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'svelte/version'
5
6
 
@@ -17,18 +18,18 @@ Gem::Specification.new do |spec|
17
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
20
  spec.require_paths = ['lib']
20
- spec.required_ruby_version = '~> 2.1'
21
+ spec.required_ruby_version = '~> 2.4'
21
22
 
22
23
  spec.add_dependency 'faraday', '~> 0.9'
23
24
  spec.add_dependency 'faraday_middleware', '~> 0.10'
24
25
  spec.add_dependency 'typhoeus', '~> 1.0'
25
26
 
26
- spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'codeclimate-test-reporter'
28
+ spec.add_development_dependency 'rake', '~> 12.3'
27
29
  spec.add_development_dependency 'redcarpet', '~> 3.3'
28
30
  spec.add_development_dependency 'rspec', '~> 3.4'
31
+ spec.add_development_dependency 'rubocop'
29
32
  spec.add_development_dependency 'simplecov', '~> 0.11'
30
- spec.add_development_dependency 'webmock', '~> 1.22'
31
- spec.add_development_dependency 'yard', '~> 0.8'
32
- spec.add_development_dependency 'rubocop', '~> 0.36'
33
- spec.add_development_dependency 'codeclimate-test-reporter'
33
+ spec.add_development_dependency 'webmock', '~> 3.6'
34
+ spec.add_development_dependency 'yard'
34
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svelte
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - notonthehighstreet.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-22 00:00:00.000000000 Z
11
+ date: 2019-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -53,105 +53,105 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: codeclimate-test-reporter
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: redcarpet
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.3'
75
+ version: '12.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: '3.3'
82
+ version: '12.3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: redcarpet
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.4'
89
+ version: '3.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.4'
96
+ version: '3.3'
97
97
  - !ruby/object:Gem::Dependency
98
- name: simplecov
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.11'
103
+ version: '3.4'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.11'
110
+ version: '3.4'
111
111
  - !ruby/object:Gem::Dependency
112
- name: webmock
112
+ name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '1.22'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '1.22'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: yard
126
+ name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0.8'
131
+ version: '0.11'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0.8'
138
+ version: '0.11'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rubocop
140
+ name: webmock
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.36'
145
+ version: '3.6'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.36'
152
+ version: '3.6'
153
153
  - !ruby/object:Gem::Dependency
154
- name: codeclimate-test-reporter
154
+ name: yard
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -217,15 +217,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
217
  requirements:
218
218
  - - "~>"
219
219
  - !ruby/object:Gem::Version
220
- version: '2.1'
220
+ version: '2.4'
221
221
  required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  requirements:
223
223
  - - ">="
224
224
  - !ruby/object:Gem::Version
225
225
  version: '0'
226
226
  requirements: []
227
- rubyforge_project:
228
- rubygems_version: 2.6.14
227
+ rubygems_version: 3.0.1
229
228
  signing_key:
230
229
  specification_version: 4
231
230
  summary: Dynamic Ruby API Client from Swagger JSON Spec