svelte 0.1.5 → 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 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