error_normalizer 0.2.3 → 0.2.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
2
  SHA256:
3
- metadata.gz: a6a89827f4de579d063163a35e830eed4c4f1cf3d491cb30053b3392b75224cb
4
- data.tar.gz: ea6b31b86c5542db161e9297ba1f2ed8d3e4e9732c27bf096603cb9ef7d38d47
3
+ metadata.gz: cb14b964d184febd948c8965030548fdaf37d7ac39d8fac6e4fabebdf518150b
4
+ data.tar.gz: 87220e4f46faae5c1f2cf1ed8813978d60720910ccb3662e45698ae826b2b435
5
5
  SHA512:
6
- metadata.gz: 3b3747acc7be3524f9c76e2699704378572a6300893e58dd72e473f7b0feecc3d4129384059471518e7586967d76877e1dec7d9a6f3e59da3b8315d6236a67eb
7
- data.tar.gz: 595c13c118e91f7e5f62e96614b2a11b24a65950f973fd290141680556a68be3b1083abc61c422a5cd6f04af8d503080bcf4539c1adc32d8e934819c495a9728
6
+ metadata.gz: 2765ca075126a57926c60da14b84add0dd0a6dad55861640f034de164353f38dc1b9c5d4de6588d5ae8ff267f69a0f700354771e4b41b3af8a92d6c50c52b40f
7
+ data.tar.gz: 4cfa14ae30cdf1ecf5c3963716ba908269865ba8c3c539b23ea70b83b999a1a1b1fcff43c2048396a31b46c0de2a64efdb482e4fa2aab5c0f70bd6b5c5e47e69
data/.gitignore CHANGED
@@ -1,3 +1,5 @@
1
+ *.gem
2
+ .rspec_status
1
3
  /.bundle/
2
4
  /.yardoc
3
5
  /_yardoc/
@@ -6,6 +8,3 @@
6
8
  /pkg/
7
9
  /spec/reports/
8
10
  /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
data/.rubocop.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  # Common configuration.
2
2
  AllCops:
3
- TargetRubyVersion: 2.5
4
- TargetRailsVersion: 5.1
3
+ TargetRubyVersion: 2.0
5
4
 
6
5
  #################### Style ###########################
7
6
 
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- error_normalizer (0.2.2)
4
+ error_normalizer (0.2.4)
5
5
  dry-configurable (~> 0.7.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
+ [![Build Status](https://jenkins.yalantis.com/buildStatus/icon?job=error_normalizer)](https://jenkins.yalantis.com/job/error_normalizer/)
2
+
1
3
  # Hola :call_me_hand:
2
4
 
3
- This gem was born out of need to have a establish a single universal error format to be consumed by frontend (JS), Android and iOS clients.
5
+ This gem was born out of the need to have an established universal error format to be consumed by frontend (JS), Android and iOS clients.
4
6
 
5
7
  ## API error format
6
8
 
@@ -20,9 +22,10 @@ In our projects we have a convention, that in case of a failed request (422) bac
20
22
  Each error object **must have** 4 required fields: `key`, `type`, `message` and `payload`.
21
23
 
22
24
  - `key` is a concise error code that will be used in a user-friendly translations
23
- - `type` may be `params`, `custom` or something else
25
+ - `type` may be `params`, `custom`, `rule` or something else
24
26
  - `params` means that some parameter that the backend received was wrong
25
- - `custom` covers everything else from the business validation composed from several parameters to something really special
27
+ - `rule` covers cases of the high-level (business) rules which validate against several fields simultaneously
28
+ - `custom` covers everything else
26
29
  - `message` is a "default" or "fallback" error message in plain English that may be used if client does not have translation for the error code
27
30
  - `payload` contains other useful data that assists client error handling. For example, in case of `type: "params"` we can provide a _path_ to the invalid paramter.
28
31
 
@@ -76,7 +79,7 @@ For more information about supported errors and how they would be parsed please
76
79
 
77
80
  **TL;DR:** Add `_rule` to the [custom validation block](https://dry-rb.org/gems/dry-validation/custom-validation-blocks/) names (adding this to the [high-level rules](https://dry-rb.org/gems/dry-validation/high-level-rules/) won't harm either, praise the consistency!).
78
81
 
79
- **Long version**: When you're using [custom validation blocks](https://dry-rb.org/gems/dry-validation/custom-validation-blocks/) the error output is slightly diffenet. Instead of attribute name it will have a rule name as a key. For example, GIVEN this schema
82
+ **Long version**: When you're using [custom validation blocks](https://dry-rb.org/gems/dry-validation/custom-validation-blocks/) the error output is slightly diffenet. Instead of the attribute name it will have a rule name as a key. For example, GIVEN this schema
80
83
 
81
84
  schema = Dry::Validation.Schema do
82
85
  configure do
@@ -144,7 +147,7 @@ You can customize rule name match pattern, type name or turn off this feature co
144
147
 
145
148
  ##### Full message translation
146
149
 
147
- This feature enables to define localization for schema attributes (think of `path` that you get in `payload`), translate it with I18n and concatenate it with the error messages.
150
+ This feature allows to define the localization for schema attributes (think of `path` that you get in `payload`), translate it with I18n and concatenate it with the error messages.
148
151
 
149
152
  schema = Dry::Validation.Schema do
150
153
  required(:user).schema do
@@ -242,12 +245,6 @@ THEN we can normalize object errors to API error format
242
245
  # :type=>"params"
243
246
  # }]
244
247
 
245
- ## TODO
246
-
247
- - configure Gitlab CI
248
- - parse ActiveModel error mesasges
249
- - support array of errors as an input
250
-
251
248
  ## License
252
249
 
253
250
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -5,11 +5,11 @@ require_relative 'lib/error_normalizer/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'error_normalizer'
7
7
  spec.version = ErrorNormalizer::VERSION
8
- spec.authors = ['Denis Kondratenko']
8
+ spec.authors = ['Denis Kondratenko', 'Aleksandra Stolyar']
9
9
  spec.email = ['di.kondratenko@gmail.com']
10
10
 
11
11
  spec.summary = 'Normalize dry-validation and ActiveModel errors to the universal format'
12
- spec.homepage = 'https://gitlab.yalantis.com/public-repo/error_normalizer/'
12
+ spec.homepage = 'https://github.com/Yalantis/error_normalizer'
13
13
  spec.license = 'MIT'
14
14
 
15
15
  # Specify which files should be added to the gem when it is released.
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
18
18
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
19
  end
20
20
  spec.require_paths = ['lib']
21
+ spec.required_ruby_version = '~> 2.0'
21
22
 
22
23
  spec.add_runtime_dependency 'dry-configurable', '~> 0.7.0'
23
24
  spec.add_development_dependency 'i18n', '~> 1'
@@ -42,7 +42,7 @@ class ErrorNormalizer
42
42
  translated_tokens << translate_token(token, i, tokens)
43
43
  end
44
44
 
45
- translated_tokens.join(' ').capitalize
45
+ upcase_sentence(translated_tokens.join(' '))
46
46
  end
47
47
 
48
48
  private
@@ -69,5 +69,9 @@ class ErrorNormalizer
69
69
  lookup << token
70
70
  end
71
71
  end
72
+
73
+ def upcase_sentence(string)
74
+ string.length > 0 ? string[0].upcase.concat(string[1..-1]) : ""
75
+ end
72
76
  end
73
77
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ErrorNormalizer
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: error_normalizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kondratenko
8
+ - Aleksandra Stolyar
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2019-02-14 00:00:00.000000000 Z
12
+ date: 2019-06-05 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: dry-configurable
@@ -132,6 +133,7 @@ files:
132
133
  - ".gitignore"
133
134
  - ".rspec"
134
135
  - ".rubocop.yml"
136
+ - ".ruby-version"
135
137
  - Gemfile
136
138
  - Gemfile.lock
137
139
  - LICENSE.txt
@@ -145,7 +147,7 @@ files:
145
147
  - lib/error_normalizer/normalizer.rb
146
148
  - lib/error_normalizer/schema_path_translator.rb
147
149
  - lib/error_normalizer/version.rb
148
- homepage: https://gitlab.yalantis.com/public-repo/error_normalizer/
150
+ homepage: https://github.com/Yalantis/error_normalizer
149
151
  licenses:
150
152
  - MIT
151
153
  metadata: {}
@@ -155,9 +157,9 @@ require_paths:
155
157
  - lib
156
158
  required_ruby_version: !ruby/object:Gem::Requirement
157
159
  requirements:
158
- - - ">="
160
+ - - "~>"
159
161
  - !ruby/object:Gem::Version
160
- version: '0'
162
+ version: '2.0'
161
163
  required_rubygems_version: !ruby/object:Gem::Requirement
162
164
  requirements:
163
165
  - - ">="