request_handler 1.1.0 → 1.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
2
  SHA256:
3
- metadata.gz: 7bdc41be4882152511b384885eb59192f5173abb7f08e9f2c32f06030c571821
4
- data.tar.gz: 910f9f1a2a227c1536c3153857eca1906313a6594d6e66c13989fdb78ef6af39
3
+ metadata.gz: fb27be2f216ddde5e61c75588e2fcd838ec4d252919fac9761372f63d1187c80
4
+ data.tar.gz: dbac14a26b2de68aa1d7cf506622f849bc77a2b949424db1ffa33d70a9bbf76c
5
5
  SHA512:
6
- metadata.gz: c0ee7d6b5160d2f8e4a5c33501aecc4cbd43c6c8d1cbb7dd54a6ecd3700ddedf7f600dffc3b6985775b3f7fae4d077a88774b3f6d3762c7a1f79e386162e190d
7
- data.tar.gz: b912e9cde9288dee5e004c1ad71e9f0a9e985e7bc5ff4fe742b1284078ab7c35d882a757b3ae4235b3d5968fc12f29c1c3c6d37ee106960661134e3a36441042
6
+ metadata.gz: fac2d974663982067de6d60c16e47e63bca678925f29b6d4ccbc4e25857929ca85f7da1512c61215bd01b502c145846d738c6aa3590b21f395e39eadd6f119d6
7
+ data.tar.gz: 7656a364baaa0ccc75a179682541e0fe3052972b4272f1f6ced7dedf7ba06e925cbc0936f41d9cadff6b984666e04add629ea96f0d282c25e31bc871090f57d9
data/.travis.yml CHANGED
@@ -1,12 +1,10 @@
1
1
  language: ruby
2
2
  cache: bundler
3
3
  rvm:
4
- - 2.2.10
5
- - 2.3.7
6
4
  - 2.4.4
7
- - 2.5.1
8
- - jruby-9.1.17.0
5
+ - 2.5.3
9
6
  - jruby-9.2.0.0
7
+ - jruby-9.2.7.0
10
8
  jdk:
11
9
  - oraclejdk8
12
10
  env:
@@ -14,27 +12,22 @@ env:
14
12
  - "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
15
13
  matrix:
16
14
  exclude:
17
- - rvm: 2.2.10
18
- jdk: oraclejdk8
19
- env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
20
- - rvm: 2.3.7
21
- jdk: oraclejdk8
22
- env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
23
15
  - rvm: 2.4.4
24
16
  jdk: oraclejdk8
25
17
  env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
26
- - rvm: 2.5.1
18
+ - rvm: 2.5.3
27
19
  jdk: oraclejdk8
28
20
  env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
29
21
  allow_failures:
30
- - rvm: jruby-9.1.17.0
22
+ - rvm: jruby-9.2.0.0
31
23
  jdk: oraclejdk8
32
24
  env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
33
- - rvm: jruby-9.2.0.0
25
+ - rvm: jruby-9.2.7.0
34
26
  jdk: oraclejdk8
35
27
  env: "JRUBY_OPTS='-Xcompile.invokedynamic=true --debug'"
28
+ - rvm: 2.6.2
36
29
  before_install:
37
30
  - gem update --system
38
- - gem install bundler -v 1.16.2
31
+ - gem install bundler -v 2.0.1
39
32
  before_script:
40
33
  - bundle exec danger
data/CHANGELOG.md CHANGED
@@ -4,7 +4,9 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased]
7
+ ## [1.2.0] - 2019-04-15
8
+ ### Added
9
+ - Apart from dry-validation, now definition or any other validation library can be used
8
10
 
9
11
  ## [1.1.0] - 2018-07-13
10
12
  ### Changed
@@ -0,0 +1,69 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Project maintainers who do not follow or enforce the Code of Conduct in good
58
+ faith may face temporary or permanent repercussions as determined by other
59
+ members of the project's leadership.
60
+
61
+ ## Attribution
62
+
63
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
64
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
65
+
66
+ [homepage]: https://www.contributor-covenant.org
67
+
68
+ For answers to common questions about this code of conduct, see
69
+ https://www.contributor-covenant.org/faq
File without changes
data/README.md CHANGED
@@ -8,12 +8,6 @@ This gem allows easy and dry handling of requests based on the dry-validation
8
8
  gem for validation and data coersion. It allows to handle headers, filters,
9
9
  include_options, sorting and of course to validate the body.
10
10
 
11
- ## dry-gem dependency
12
-
13
- Version 1.1 removes the strict dependency to dry-types v0.11 & dry-validation v0.11 and allows usage of newer versions of dry-gems. This gem uses these gems but only a very small interface with them therefore this gem itself is usually not impacted by smaller breaking changes each minor version of the dry-gems might introduce.
14
-
15
- **Please check your applications compatibility with each dry-types version and pin versions as necessary**
16
-
17
11
  ## Installation
18
12
 
19
13
  Add this line to your application's Gemfile:
@@ -30,6 +24,33 @@ Or install it yourself as:
30
24
 
31
25
  $ gem install request_handler
32
26
 
27
+ ## Configuration
28
+
29
+ The default logger and separator can be changed globally:
30
+
31
+ ```ruby
32
+ RequestHandler.configure do
33
+ logger Logger.new(STDERR)
34
+ separator '____'
35
+ validation_engine RequestHandler::Validation::DryEngine
36
+ end
37
+ ```
38
+
39
+ ### Validation Engine
40
+ Per default this gem uses the `DryEngine` which relies on dry-validation. All
41
+ examples in this Readme assume you are using this default engine. However
42
+ you can also use the builtin `DefinitionEngine`, which uses [Definition](https://github.com/Goltergaul/definition) as validation library:
43
+
44
+ ```ruby
45
+ RequestHandler.configure do
46
+ require 'request_handler/validation/definition_engine'
47
+ validation_engine RequestHandler::Validation::DefinitionEngine
48
+ end
49
+ ```
50
+
51
+ You can also implement your own engine to use any other library, by implementing
52
+ the abstract class `RequestHandler::Validation::Engine`
53
+
33
54
  ## Usage
34
55
 
35
56
  To set up a handler, you need create a class which inherits from
@@ -235,18 +256,6 @@ and an additional file `image.png`, the resulting `multipart_params` will be the
235
256
 
236
257
  Please note that each part's content has to be uploaded as a separate file currently.
237
258
 
238
- ### Configuration
239
-
240
- The default logger and separator can be changed globally by using
241
- `RequestHandler.configure {}`.
242
-
243
- ```ruby
244
- RequestHandler.configure do
245
- logger Logger.new(STDERR)
246
- separator '____'
247
- end
248
- ```
249
-
250
259
  ### Caveats
251
260
 
252
261
  It is currently expected that _url_ parameter are already parsed and included in
@@ -263,23 +272,23 @@ end
263
272
 
264
273
  ## Development
265
274
 
266
- After checking out the repo, run `bin/setup` to install dependencies. Then, run
267
- `rake test` to run the tests. You can also run `bin/console` for an interactive
268
- prompt that will allow you to experiment.
275
+ After checking out the repo, run `bin/setup` to install dependencies. You can
276
+ also run `bin/console` for an interactive prompt that will allow you to experiment.
277
+
278
+ Run `bundle exec rspec` to run the tests.
269
279
 
270
280
  To install this gem onto your local machine, run `bundle exec rake install`. To
271
281
  release a new version, update the version number in `version.rb`, and then run
272
- `bundle exec rake release`, which will create a git tag for the version, push
273
- git commits and tags, and push the `.gem` file
274
- to [rubygems.org](https://rubygems.org).
282
+ `bundle exec rake release`, which will create a git tag for the version, push git
283
+ commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
275
284
 
276
285
  ## Contributing
277
- Bug reports and pull requests are welcome on GitHub at
278
- https://github.com/runtastic/request_handler. This project is intended to be a
279
- safe, welcoming space for collaboration, and contributors are expected to adhere
280
- to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
286
+ Bug reports and pull requests are welcome on GitHub at https://github.com/runtastic/request_handler.
287
+ This project is intended to be a safe, welcoming space for collaboration, and
288
+ contributors are expected to adhere to the [code of conduct][cc].
281
289
 
282
290
  ## License
291
+ The gem is available as open source under [the terms of the MIT License][mit].
283
292
 
284
- The gem is available as open source under the terms of
285
- the [MIT License](http://opensource.org/licenses/MIT).
293
+ [mit]: https://choosealicense.com/licenses/mit/
294
+ [cc]: ../CODE_OF_CONDUCT.md
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'request_handler/version'
4
4
  require 'request_handler/base'
5
+ require 'request_handler/validation/dry_engine'
5
6
  require 'confstruct'
6
7
  require 'dry-validation'
7
8
  require 'multi_json'
@@ -17,11 +18,16 @@ module RequestHandler
17
18
  @configuration ||= ::Confstruct::Configuration.new do
18
19
  logger Logger.new(STDOUT)
19
20
  separator '__'
21
+ validation_engine Validation::DryEngine
20
22
  end
21
23
  end
22
24
 
23
25
  def separator
24
26
  configuration.separator
25
27
  end
28
+
29
+ def engine
30
+ configuration.validation_engine
31
+ end
26
32
  end
27
33
  end
@@ -8,8 +8,8 @@ module RequestHandler
8
8
  @params = params
9
9
  allowed.reject! { |_k, v| v == false }
10
10
  allowed.each_value do |option|
11
- raise InternalArgumentError, allowed: 'must be a Enum or a Boolean' unless
12
- option.is_a?(Dry::Types::Enum) || option.is_a?(TrueClass)
11
+ raise InternalArgumentError, allowed: 'must be a Schema or a Boolean' unless
12
+ RequestHandler.engine.valid_schema?(option) || option.is_a?(TrueClass)
13
13
  end
14
14
  @allowed = allowed
15
15
  raise InternalArgumentError, required: 'must be an Array' unless required.is_a?(Array)
@@ -39,9 +39,9 @@ module RequestHandler
39
39
  if allowed[type] == true
40
40
  option.to_sym
41
41
  else
42
- allowed[type].call(option).to_sym
42
+ RequestHandler.engine.validate!(option, allowed[type]).output.to_sym
43
43
  end
44
- rescue Dry::Types::ConstraintError
44
+ rescue Validation::Error
45
45
  raise FieldsetsParamsError, fieldsets: "invalid field: <#{option}> for type: #{type}"
46
46
  end
47
47
 
@@ -15,8 +15,8 @@ module RequestHandler
15
15
  options.map do |option|
16
16
  option.gsub!('.', ::RequestHandler.separator)
17
17
  begin
18
- allowed_options_type.call(option).to_sym
19
- rescue Dry::Types::ConstraintError
18
+ RequestHandler.engine.validate!(option, allowed_options_type).output.to_sym
19
+ rescue Validation::Error
20
20
  raise OptionNotAllowedError, option.to_sym => 'is not an allowed include option'
21
21
  end
22
22
  end
@@ -6,13 +6,13 @@ module RequestHandler
6
6
  def initialize(params:, allowed_options_type:)
7
7
  @params = params
8
8
  @allowed_options_type = allowed_options_type
9
- raise InternalArgumentError, allowed_options_type: 'must be a Enum' unless enum?
9
+ raise InternalArgumentError, allowed_options_type: 'must be a Schema' unless schema?
10
10
  end
11
11
 
12
12
  private
13
13
 
14
- def enum?
15
- @allowed_options_type.class.equal?(Dry::Types::Enum)
14
+ def schema?
15
+ RequestHandler.engine.valid_schema?(@allowed_options_type)
16
16
  end
17
17
 
18
18
  def empty_param?(param)
@@ -8,7 +8,7 @@ module RequestHandler
8
8
  missing_arguments << { schema: 'is missing' } if schema.nil?
9
9
  missing_arguments << { schema_options: 'is missing' } if schema_options.nil?
10
10
  raise MissingArgumentError, missing_arguments unless missing_arguments.empty?
11
- raise InternalArgumentError, schema: 'must be a Schema' unless schema.is_a?(Dry::Validation::Schema)
11
+ raise InternalArgumentError, schema: 'must be a Schema' unless RequestHandler.engine.valid_schema?(schema)
12
12
  @schema = schema
13
13
  @schema_options = schema_options
14
14
  end
@@ -17,22 +17,17 @@ module RequestHandler
17
17
 
18
18
  def validate_schema(data, with: schema)
19
19
  raise MissingArgumentError, data: 'is missing' if data.nil?
20
- data = deep_symbolize_keys(data) if with.rules.keys.first.is_a?(Symbol)
21
20
  validator = validate(data, schema: with)
22
21
  validation_failure?(validator)
23
22
  validator.output
24
23
  end
25
24
 
26
25
  def validate(data, schema:)
27
- if schema_options.empty?
28
- schema.call(data)
29
- else
30
- schema.with(schema_options).call(data)
31
- end
26
+ RequestHandler.engine.validate(data, schema, options: schema_options)
32
27
  end
33
28
 
34
29
  def validation_failure?(validator)
35
- return unless validator.failure?
30
+ return if validator.valid?
36
31
  errors = validator.errors.each_with_object({}) do |(k, v), memo|
37
32
  add_note(v, k, memo)
38
33
  end
@@ -48,19 +43,6 @@ module RequestHandler
48
43
  memo
49
44
  end
50
45
 
51
- def deep_symbolize_keys(hash)
52
- mem = {}
53
- hash.map do |key, value|
54
- if value.is_a?(Hash)
55
- value = deep_symbolize_keys(value)
56
- elsif value.is_a?(Array)
57
- value.map! { |v| v.is_a?(Hash) ? deep_symbolize_keys(v) : v }
58
- end
59
- mem[key.to_sym] = value
60
- end
61
- mem
62
- end
63
-
64
46
  attr_reader :schema, :schema_options
65
47
  end
66
48
  end
@@ -36,8 +36,8 @@ module RequestHandler
36
36
  end
37
37
 
38
38
  def allowed_option(name)
39
- allowed_options_type.call(name)
40
- rescue Dry::Types::ConstraintError
39
+ RequestHandler.engine.validate!(name, allowed_options_type).output
40
+ rescue Validation::Error
41
41
  raise OptionNotAllowedError, name.to_sym => 'is not an allowed sort option'
42
42
  end
43
43
 
@@ -0,0 +1,26 @@
1
+ require_relative 'errors'
2
+ require_relative 'engine'
3
+ require_relative 'result'
4
+ require 'active_support/core_ext/hash/keys'
5
+
6
+ module RequestHandler
7
+ module Validation
8
+ class DefinitionEngine < Engine
9
+ def self.valid_schema?(definition)
10
+ definition.is_a?(::Definition::Types::Base)
11
+ end
12
+
13
+ def self.validate(value, schema, options: {}) # rubocop:disable Lint/UnusedMethodArgument
14
+ value = value.deep_symbolize_keys if value.is_a?(Hash)
15
+ result = schema.conform(value)
16
+ Result.new(output: result.value, errors: result.error_hash)
17
+ end
18
+
19
+ def self.validate!(value, schema, options: {})
20
+ validate(value, schema, options).tap do |result|
21
+ raise Validation::Error unless result.valid?
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'errors'
2
+ require_relative 'engine'
3
+ require_relative 'result'
4
+ require 'active_support/core_ext/hash/keys'
5
+
6
+ module RequestHandler
7
+ module Validation
8
+ class DryEngine < Engine
9
+ def self.valid_schema?(schema)
10
+ schema.respond_to?(:call)
11
+ end
12
+
13
+ def self.validate(value, schema, options: {})
14
+ value = value.deep_symbolize_keys if schema.respond_to?(:rules) &&
15
+ schema.rules.keys.first.is_a?(Symbol)
16
+ result = if options.empty?
17
+ schema.call(value)
18
+ else
19
+ schema.with(options).call(value)
20
+ end
21
+
22
+ to_result(result)
23
+ rescue Dry::Types::ConstraintError => e
24
+ Result.new(output: nil, errors: { '' => e })
25
+ end
26
+
27
+ def self.validate!(value, schema, options: {})
28
+ validate(value, schema, options).tap do |result|
29
+ raise Validation::Error unless result.valid?
30
+ end
31
+ end
32
+
33
+ def self.to_result(result)
34
+ if result.is_a?(Dry::Validation::Result)
35
+ Result.new(output: result.output, errors: result.errors)
36
+ else
37
+ Result.new(output: result, errors: {})
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,24 @@
1
+
2
+ require_relative 'errors'
3
+
4
+ module RequestHandler
5
+ module Validation
6
+ class Engine
7
+ def self.valid_schema?(_schema)
8
+ raise NotImplementedError
9
+ end
10
+
11
+ def self.validate(_value, _schema, options: {}) # rubocop:disable Lint/UnusedMethodArgument
12
+ raise NotImplementedError
13
+ end
14
+
15
+ def self.validate!(_value, _schema, options: {}) # rubocop:disable Lint/UnusedMethodArgument
16
+ raise NotImplementedError
17
+ end
18
+
19
+ private
20
+
21
+ attr_accessor :value, :schema, :options
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,5 @@
1
+ module RequestHandler
2
+ module Validation
3
+ class Error < StandardError; end
4
+ end
5
+ end
@@ -0,0 +1,17 @@
1
+
2
+ module RequestHandler
3
+ module Validation
4
+ class Result
5
+ attr_accessor :errors, :output
6
+
7
+ def initialize(errors:, output:)
8
+ self.errors = errors
9
+ self.output = output
10
+ end
11
+
12
+ def valid?
13
+ errors.empty?
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RequestHandler
4
- VERSION = '1.1.0'.freeze
4
+ VERSION = '1.2.0'.freeze
5
5
  end
@@ -7,14 +7,14 @@ require 'request_handler/version'
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'request_handler'
9
9
  spec.version = RequestHandler::VERSION
10
- spec.authors = ['Andreas Eger', 'Raphael Hetzel']
11
- spec.email = ['andreas.eger@runtastic.com', 'raphael.hetzel@runtastic.com']
10
+ spec.authors = ['Andreas Eger', 'Dominik Goltermann']
11
+ spec.email = ['andreas.eger@runtastic.com', 'dominik.goltermann@runtastic.com']
12
12
 
13
13
  spec.summary = 'shared base for request_handler using dry-* gems'
14
14
  spec.description = 'shared base for request_handler using dry-* gems'
15
15
  spec.homepage = 'https://github.com/runtastic/request_handler'
16
16
  spec.license = 'MIT'
17
- spec.required_ruby_version = '~> 2.2'
17
+ spec.required_ruby_version = '~> 2.4'
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  f.match(%r{^(test|spec|features)/})
@@ -28,8 +28,9 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency 'confstruct', '~> 1.0.2'
30
30
  spec.add_dependency 'multi_json', '~> 1.12'
31
+ spec.add_dependency 'activesupport', '> 4.0'
31
32
 
32
- spec.add_development_dependency 'bundler', '~> 1.13'
33
+ spec.add_development_dependency 'bundler'
33
34
  spec.add_development_dependency 'rake', '~> 10.0'
34
35
  spec.add_development_dependency 'rspec', '~> 3.5'
35
36
  spec.add_development_dependency 'fuubar', '~> 2.2'
@@ -44,4 +45,6 @@ Gem::Specification.new do |spec|
44
45
  spec.add_development_dependency 'guard-rubocop'
45
46
 
46
47
  spec.add_development_dependency 'rack'
48
+
49
+ spec.add_development_dependency 'definition', '~> 0.5'
47
50
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Eger
8
- - Raphael Hetzel
8
+ - Dominik Goltermann
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-07-13 00:00:00.000000000 Z
12
+ date: 2019-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-validation
@@ -79,20 +79,34 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.12'
82
+ - !ruby/object:Gem::Dependency
83
+ name: activesupport
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">"
87
+ - !ruby/object:Gem::Version
88
+ version: '4.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">"
94
+ - !ruby/object:Gem::Version
95
+ version: '4.0'
82
96
  - !ruby/object:Gem::Dependency
83
97
  name: bundler
84
98
  requirement: !ruby/object:Gem::Requirement
85
99
  requirements:
86
- - - "~>"
100
+ - - ">="
87
101
  - !ruby/object:Gem::Version
88
- version: '1.13'
102
+ version: '0'
89
103
  type: :development
90
104
  prerelease: false
91
105
  version_requirements: !ruby/object:Gem::Requirement
92
106
  requirements:
93
- - - "~>"
107
+ - - ">="
94
108
  - !ruby/object:Gem::Version
95
- version: '1.13'
109
+ version: '0'
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: rake
98
112
  requirement: !ruby/object:Gem::Requirement
@@ -247,10 +261,24 @@ dependencies:
247
261
  - - ">="
248
262
  - !ruby/object:Gem::Version
249
263
  version: '0'
264
+ - !ruby/object:Gem::Dependency
265
+ name: definition
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '0.5'
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '0.5'
250
278
  description: shared base for request_handler using dry-* gems
251
279
  email:
252
280
  - andreas.eger@runtastic.com
253
- - raphael.hetzel@runtastic.com
281
+ - dominik.goltermann@runtastic.com
254
282
  executables: []
255
283
  extensions: []
256
284
  extra_rdoc_files: []
@@ -260,10 +288,11 @@ files:
260
288
  - ".rubocop.yml"
261
289
  - ".travis.yml"
262
290
  - CHANGELOG.md
291
+ - CODE_OF_CONDUCT.md
263
292
  - Dangerfile
264
293
  - Gemfile
265
294
  - Guardfile
266
- - LICENSE.txt
295
+ - LICENSE
267
296
  - README.md
268
297
  - Rakefile
269
298
  - bin/ci
@@ -288,6 +317,11 @@ files:
288
317
  - lib/request_handler/schema_parser.rb
289
318
  - lib/request_handler/sort_option.rb
290
319
  - lib/request_handler/sort_option_parser.rb
320
+ - lib/request_handler/validation/definition_engine.rb
321
+ - lib/request_handler/validation/dry_engine.rb
322
+ - lib/request_handler/validation/engine.rb
323
+ - lib/request_handler/validation/errors.rb
324
+ - lib/request_handler/validation/result.rb
291
325
  - lib/request_handler/version.rb
292
326
  - request_handler.gemspec
293
327
  homepage: https://github.com/runtastic/request_handler
@@ -302,7 +336,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
302
336
  requirements:
303
337
  - - "~>"
304
338
  - !ruby/object:Gem::Version
305
- version: '2.2'
339
+ version: '2.4'
306
340
  required_rubygems_version: !ruby/object:Gem::Requirement
307
341
  requirements:
308
342
  - - ">="