smart_error 1.0.2 → 1.0.3
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 +5 -5
- data/.rubocop.yml +120 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Gemfile +2 -2
- data/README.md +96 -1
- data/Rakefile +3 -3
- data/bin/rubocop +15 -0
- data/lib/smart_error.rb +5 -4
- data/lib/smart_error/base_error.rb +6 -5
- data/lib/smart_error/model_error.rb +14 -8
- data/lib/smart_error/version.rb +1 -1
- data/smart_error.gemspec +9 -7
- metadata +61 -19
- data/smart_error-1.0.1.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 59d9a3f3b7d1095811041c456d368bc58d7eb72b686e25772f221923aaa7fc99
|
4
|
+
data.tar.gz: 537090f991ece72696eb0d13f6ed9158c8e4c4e6601557567d6e1aa29be7b163
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb6052bfe1dae0cbbd5b381207e1efdece8ec963b7b64eb9d88f4418505a3e78f81767beac2d4040a227fb7263b56bd521af53beb4721bc83ebbe45b9765cb49
|
7
|
+
data.tar.gz: '08731b218c5eabe0739eeeae5bde9c8fc69c7b4977a50ebf7608aafe79688b3d63141d8d5a77985137785b078c88411bf71d3a9845c625afaf468451fd2a6a2e'
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
# Usage: rubocop -a app/controllers/run/on/specific/file
|
2
|
+
require:
|
3
|
+
- rubocop-performance
|
4
|
+
|
5
|
+
AllCops:
|
6
|
+
TargetRubyVersion: 2.7.1
|
7
|
+
Exclude:
|
8
|
+
- 'bin/**/*'
|
9
|
+
|
10
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
11
|
+
Enabled: true
|
12
|
+
|
13
|
+
Layout/LineLength:
|
14
|
+
Max: 120
|
15
|
+
|
16
|
+
Layout/SpaceAroundMethodCallOperator:
|
17
|
+
Enabled: true
|
18
|
+
|
19
|
+
Layout/SpaceInLambdaLiteral:
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
Layout/DotPosition:
|
23
|
+
Description: 'Checks the position of the dot in multi-line method calls.'
|
24
|
+
StyleGuide: '#consistent-multi-line-chains'
|
25
|
+
Enabled: true
|
26
|
+
EnforcedStyle: trailing
|
27
|
+
|
28
|
+
Lint/Void:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Lint/DeprecatedOpenSSLConstant:
|
32
|
+
Enabled: true
|
33
|
+
|
34
|
+
Lint/MixedRegexpCaptureTypes:
|
35
|
+
Enabled: false
|
36
|
+
|
37
|
+
Lint/RaiseException:
|
38
|
+
Enabled: true
|
39
|
+
|
40
|
+
Lint/StructNewOverride:
|
41
|
+
Enabled: true
|
42
|
+
|
43
|
+
Style/CaseLikeIf:
|
44
|
+
Description: 'This cop identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
45
|
+
StyleGuide: '#case-vs-if-else'
|
46
|
+
Enabled: true
|
47
|
+
|
48
|
+
Style/EmptyCaseCondition:
|
49
|
+
Description: 'Avoid empty condition in case statements.'
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
Style/HashEachMethods:
|
53
|
+
Enabled: true
|
54
|
+
|
55
|
+
Style/HashTransformValues:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
Style/Documentation:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
Style/ClassAndModuleChildren:
|
62
|
+
Enabled: false
|
63
|
+
|
64
|
+
Style/HashTransformKeys:
|
65
|
+
Enabled: true
|
66
|
+
|
67
|
+
Style/ExponentialNotation:
|
68
|
+
Enabled: true
|
69
|
+
|
70
|
+
Style/RedundantRegexpCharacterClass:
|
71
|
+
Enabled: true
|
72
|
+
|
73
|
+
Style/RedundantRegexpEscape:
|
74
|
+
Enabled: true
|
75
|
+
|
76
|
+
Style/SlicingWithRange:
|
77
|
+
Enabled: true
|
78
|
+
|
79
|
+
Style/Lambda:
|
80
|
+
EnforcedStyle: literal
|
81
|
+
|
82
|
+
Style/HashSyntax:
|
83
|
+
Enabled: true
|
84
|
+
|
85
|
+
Style/RedundantSelf:
|
86
|
+
Description: "Don't use self where it's not needed."
|
87
|
+
StyleGuide: '#no-self-unless-required'
|
88
|
+
Enabled: false
|
89
|
+
|
90
|
+
Style/MethodCallWithArgsParentheses:
|
91
|
+
Description: 'Use parentheses for method calls with arguments.'
|
92
|
+
StyleGuide: '#method-invocation-parens'
|
93
|
+
EnforcedStyle: require_parentheses
|
94
|
+
Enabled: false
|
95
|
+
Exclude:
|
96
|
+
- '**/*.gemfile'
|
97
|
+
- '**/Gemfile'
|
98
|
+
- '**/presenters/*.rb'
|
99
|
+
- '**/spec/*'
|
100
|
+
|
101
|
+
|
102
|
+
Style:
|
103
|
+
BlockDelimiters:
|
104
|
+
EnforcedStyle: semantic
|
105
|
+
|
106
|
+
Style/Documentation:
|
107
|
+
Description: 'Document classes and non-namespace modules.'
|
108
|
+
Enabled: false
|
109
|
+
|
110
|
+
Metrics/AbcSize:
|
111
|
+
Max: 30
|
112
|
+
|
113
|
+
Metrics/ClassLength:
|
114
|
+
Max: 1500
|
115
|
+
|
116
|
+
Metrics/MethodLength:
|
117
|
+
Max: 25
|
118
|
+
|
119
|
+
Metrics/BlockLength:
|
120
|
+
Max: 70
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.2
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
3
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in smart_error.gemspec
|
6
6
|
gemspec
|
data/README.md
CHANGED
@@ -5,6 +5,29 @@
|
|
5
5
|
|
6
6
|
Simple gem that can handle Exceptions, ActiveRecord Errors and Custom Errors and return readable message and error number/code as usable Hash.
|
7
7
|
|
8
|
+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
9
|
+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
10
|
+
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
11
|
+
|
12
|
+
- [SmartError](#smarterror)
|
13
|
+
- [Installation](#installation)
|
14
|
+
- [Usage](#usage)
|
15
|
+
- [Handle integer as CustomError](#handle-integer-as-customerror)
|
16
|
+
- [Handle ApplicationRecord as ModelError](#handle-applicationrecord-as-modelerror)
|
17
|
+
- [Handle ActiveRecord child as ModelError](#handle-activerecord-child-as-modelerror)
|
18
|
+
- [handle Exception as ExceptionError](#handle-exception-as-exceptionerror)
|
19
|
+
- [Override the message with the provided message](#override-the-message-with-the-provided-message)
|
20
|
+
- [Merge `extra` array to message](#merge-extra-array-to-message)
|
21
|
+
- [Merge `extra` string to message](#merge-extra-string-to-message)
|
22
|
+
- [Merge `extra` with custom message](#merge-extra-with-custom-message)
|
23
|
+
- [Show First Model Errors by default](#show-first-model-errors-by-default)
|
24
|
+
- [Show Model Error details by invalid keys and messages and convert messages to sentence](#show-model-error-details-by-invalid-keys-and-messages-and-convert-messages-to-sentence)
|
25
|
+
- [Contributing](#contributing)
|
26
|
+
- [License](#license)
|
27
|
+
- [Code of Conduct](#code-of-conduct)
|
28
|
+
|
29
|
+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
30
|
+
|
8
31
|
## Installation
|
9
32
|
|
10
33
|
Add this line to your application’s Gemfile:
|
@@ -26,9 +49,81 @@ $ gem install smart_error
|
|
26
49
|
```
|
27
50
|
|
28
51
|
## Usage
|
52
|
+
First of all will need to have predefined list of error messages Like: [errors](https://github.com/ali-sheiba/smart_error/blob/master/spec/en.yml)
|
53
|
+
|
54
|
+
|
55
|
+
### Handle integer as CustomError
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
SmartError.handle(1001).to_h
|
59
|
+
# {:message=>"Unauthorized", :details=>{}, :error_url=>"1001", :error_code=>1001}
|
60
|
+
|
61
|
+
SmartError.handle(1001).to_json
|
62
|
+
# "{\"message\":\"Unauthorized\",\"details\":{},\"error_url\":\"1001\",\"error_code\":1001}"
|
63
|
+
|
64
|
+
SmartError.handle(1001, options).as_json
|
65
|
+
# {"message"=>"Unauthorized", "details"=>{}, "error_url"=>"1001", "error_code"=>1001}
|
66
|
+
```
|
67
|
+
|
68
|
+
### Handle ApplicationRecord as ModelError
|
69
|
+
```ruby
|
70
|
+
SmartError.handle(Employee.new).to_h
|
71
|
+
# {:message=>"", :details=>{}, :error_url=>"1010", :error_code=>1010}
|
72
|
+
```
|
73
|
+
|
74
|
+
### Handle ActiveRecord child as ModelError
|
75
|
+
```ruby
|
76
|
+
SmartError.handle(ApplicationRecord.new).to_h
|
77
|
+
```
|
78
|
+
|
79
|
+
### handle Exception as ExceptionError
|
80
|
+
```ruby
|
81
|
+
SmartError.handle(NoMethodError.new).to_h
|
82
|
+
# {:message=>"NoMethodError", :details=>{}, :error_url=>"1000", :error_code=>1000}
|
83
|
+
```
|
84
|
+
|
85
|
+
### Override the message with the provided message
|
86
|
+
```ruby
|
87
|
+
message = 'Custom Message'
|
88
|
+
SmartError.handle(1001, message: message).to_h
|
89
|
+
# {:message=>"Custom Message", :details=>{}, :error_url=>"1001", :error_code=>1001}
|
90
|
+
```
|
91
|
+
|
92
|
+
### Merge `extra` array to message
|
93
|
+
```ruby
|
94
|
+
extra = %i[username password country]
|
95
|
+
error = SmartError.handle(1002, extra: extra)
|
96
|
+
error.to_h
|
97
|
+
# {:message=>"Not Found: username, password, and country", :details=>{}, :error_url=>"1002", :error_code=>1002}
|
98
|
+
```
|
99
|
+
|
100
|
+
### Merge `extra` string to message
|
101
|
+
```ruby
|
102
|
+
extra = 'you are noy authorized for this action'
|
103
|
+
error = SmartError.handle(1001, extra: extra)
|
104
|
+
error.to_h
|
105
|
+
# {:message=>"Unauthorized: you are noy authorized for this action", :details=>{}, :error_url=>"1001", :error_code=>1001}
|
106
|
+
```
|
29
107
|
|
30
|
-
|
108
|
+
### Merge `extra` with custom message
|
109
|
+
```ruby
|
110
|
+
extra = %i[username password country]
|
111
|
+
message = 'Missing Parameters'
|
112
|
+
error = SmartError.handle(1001, message: message, extra: extra)
|
113
|
+
error.to_h
|
114
|
+
# {:message=>"Missing Parameters: username, password, and country", :details=>{}, :error_url=>"1001", :error_code=>1001}
|
115
|
+
```
|
31
116
|
|
117
|
+
### Show First Model Errors by default
|
118
|
+
```ruby
|
119
|
+
SmartError.handle(ExampleModel.new).to_h
|
120
|
+
```
|
121
|
+
### Show Model Error details by invalid keys and messages and convert messages to sentence
|
122
|
+
```ruby
|
123
|
+
error = SmartError.handle(ExampleModel.new)
|
124
|
+
error.to_h[:details] # 'can\'t be blank'
|
125
|
+
error.to_h[:details] # 'can\'t be blank and is invalid'
|
126
|
+
```
|
32
127
|
## Contributing
|
33
128
|
|
34
129
|
Bug reports and pull requests are welcome on GitHub at <https://github.com/ali-sheiba/smart_error>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/Rakefile
CHANGED
data/bin/rubocop
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rubocop' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
|
10
|
+
def last_commit_id_of_base_branch
|
11
|
+
`git log | sed -n 1p`.split(' ').last
|
12
|
+
end
|
13
|
+
|
14
|
+
puts "== Running rubocop with safe auto correct on modified files after #{last_commit_id_of_base_branch} commit =="
|
15
|
+
system("git diff #{last_commit_id_of_base_branch} --name-only | xargs bundle exec rubocop -A")
|
data/lib/smart_error.rb
CHANGED
@@ -22,14 +22,15 @@ module SmartError
|
|
22
22
|
@@model_error_message = :first
|
23
23
|
|
24
24
|
def self.handle(error, options = nil)
|
25
|
-
|
25
|
+
case error
|
26
|
+
when Integer
|
26
27
|
SmartError::CustomError.new(error, options)
|
27
|
-
|
28
|
+
when Exception
|
28
29
|
SmartError::ExceptionError.new(error, options)
|
29
|
-
|
30
|
+
when ApplicationRecord, ActiveRecord
|
30
31
|
SmartError::ModelError.new(error, options)
|
31
32
|
else
|
32
|
-
SmartError::
|
33
|
+
SmartError::CustomError.new(1000, options)
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
@@ -1,20 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module SmartError
|
4
|
-
#
|
4
|
+
# The Base Class of Errors
|
5
5
|
class BaseError
|
6
6
|
def initialize(error, options = {})
|
7
7
|
@error = error
|
8
8
|
@options = options&.symbolize_keys! || {}
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
# :nocov:
|
12
|
+
def not_implemented
|
12
13
|
raise NotImplementedError
|
13
14
|
end
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
alias message not_implemented
|
17
|
+
alias error_code not_implemented
|
18
|
+
# :nocov:
|
18
19
|
|
19
20
|
def details
|
20
21
|
{}
|
@@ -7,18 +7,24 @@ module SmartError
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def message
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
@error.errors.full_messages.send(action)
|
10
|
+
@error.
|
11
|
+
errors.
|
12
|
+
full_messages.
|
13
|
+
send(
|
14
|
+
action[SmartError.model_error_message] || :first
|
15
|
+
)
|
18
16
|
end
|
19
17
|
|
20
18
|
def details
|
21
19
|
@error.errors.messages.transform_values(&:to_sentence)
|
22
20
|
end
|
21
|
+
|
22
|
+
def action
|
23
|
+
{
|
24
|
+
first: :first,
|
25
|
+
last: :last,
|
26
|
+
sentence: :to_sentence
|
27
|
+
}
|
28
|
+
end
|
23
29
|
end
|
24
30
|
end
|
data/lib/smart_error/version.rb
CHANGED
data/smart_error.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'smart_error/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'smart_error'
|
9
9
|
spec.version = SmartError::VERSION
|
10
|
-
spec.authors = ['Ali Al-Sheiba']
|
11
|
-
spec.email = ['ali.alsheiba@gmail.com']
|
10
|
+
spec.authors = ['Ali Al-Sheiba', 'MajedBojan']
|
11
|
+
spec.email = ['ali.alsheiba@gmail.com', 'bojanmajed@gmail.com']
|
12
12
|
|
13
13
|
spec.summary = 'Simple way to handle custom error codes and messages'
|
14
14
|
spec.description = 'Simple way to maintain custom error codes and there messages with I18n.'
|
@@ -23,10 +23,12 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = ['lib']
|
25
25
|
|
26
|
-
spec.
|
26
|
+
spec.add_dependency 'i18n', '~> 1.8', '>= 1.8.5'
|
27
|
+
spec.add_dependency 'activesupport', '>= 5.0'
|
28
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
27
29
|
spec.add_development_dependency 'pry', '~> 0.11.3'
|
28
|
-
spec.add_development_dependency 'rake', '~>
|
30
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
29
31
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
30
|
-
spec.
|
31
|
-
spec.
|
32
|
+
spec.add_development_dependency 'rubocop', '~> 0.93.1'
|
33
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.8', '>= 1.8.1'
|
32
34
|
end
|
metadata
CHANGED
@@ -1,29 +1,64 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_error
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ali Al-Sheiba
|
8
|
+
- MajedBojan
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-10-21 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: i18n
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.8'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.8.5
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '1.8'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.5
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: activesupport
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.0'
|
41
|
+
type: :runtime
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
13
48
|
- !ruby/object:Gem::Dependency
|
14
49
|
name: bundler
|
15
50
|
requirement: !ruby/object:Gem::Requirement
|
16
51
|
requirements:
|
17
52
|
- - "~>"
|
18
53
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
54
|
+
version: '2.1'
|
20
55
|
type: :development
|
21
56
|
prerelease: false
|
22
57
|
version_requirements: !ruby/object:Gem::Requirement
|
23
58
|
requirements:
|
24
59
|
- - "~>"
|
25
60
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
61
|
+
version: '2.1'
|
27
62
|
- !ruby/object:Gem::Dependency
|
28
63
|
name: pry
|
29
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +79,14 @@ dependencies:
|
|
44
79
|
requirements:
|
45
80
|
- - "~>"
|
46
81
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
82
|
+
version: '12.3'
|
48
83
|
type: :development
|
49
84
|
prerelease: false
|
50
85
|
version_requirements: !ruby/object:Gem::Requirement
|
51
86
|
requirements:
|
52
87
|
- - "~>"
|
53
88
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
89
|
+
version: '12.3'
|
55
90
|
- !ruby/object:Gem::Dependency
|
56
91
|
name: rspec
|
57
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,42 +102,50 @@ dependencies:
|
|
67
102
|
- !ruby/object:Gem::Version
|
68
103
|
version: '3.6'
|
69
104
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
105
|
+
name: rubocop
|
71
106
|
requirement: !ruby/object:Gem::Requirement
|
72
107
|
requirements:
|
73
|
-
- - "
|
108
|
+
- - "~>"
|
74
109
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
76
|
-
type: :
|
110
|
+
version: 0.93.1
|
111
|
+
type: :development
|
77
112
|
prerelease: false
|
78
113
|
version_requirements: !ruby/object:Gem::Requirement
|
79
114
|
requirements:
|
80
|
-
- - "
|
115
|
+
- - "~>"
|
81
116
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
117
|
+
version: 0.93.1
|
83
118
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
119
|
+
name: rubocop-performance
|
85
120
|
requirement: !ruby/object:Gem::Requirement
|
86
121
|
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.8'
|
87
125
|
- - ">="
|
88
126
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
type: :
|
127
|
+
version: 1.8.1
|
128
|
+
type: :development
|
91
129
|
prerelease: false
|
92
130
|
version_requirements: !ruby/object:Gem::Requirement
|
93
131
|
requirements:
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '1.8'
|
94
135
|
- - ">="
|
95
136
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
137
|
+
version: 1.8.1
|
97
138
|
description: Simple way to maintain custom error codes and there messages with I18n.
|
98
139
|
email:
|
99
140
|
- ali.alsheiba@gmail.com
|
141
|
+
- bojanmajed@gmail.com
|
100
142
|
executables: []
|
101
143
|
extensions: []
|
102
144
|
extra_rdoc_files: []
|
103
145
|
files:
|
104
146
|
- ".gitignore"
|
105
147
|
- ".rspec"
|
148
|
+
- ".rubocop.yml"
|
106
149
|
- ".ruby-gemset"
|
107
150
|
- ".ruby-version"
|
108
151
|
- ".travis.yml"
|
@@ -113,6 +156,7 @@ files:
|
|
113
156
|
- README.md
|
114
157
|
- Rakefile
|
115
158
|
- bin/console
|
159
|
+
- bin/rubocop
|
116
160
|
- bin/setup
|
117
161
|
- lib/smart_error.rb
|
118
162
|
- lib/smart_error/base_error.rb
|
@@ -120,7 +164,6 @@ files:
|
|
120
164
|
- lib/smart_error/exception_error.rb
|
121
165
|
- lib/smart_error/model_error.rb
|
122
166
|
- lib/smart_error/version.rb
|
123
|
-
- smart_error-1.0.1.gem
|
124
167
|
- smart_error.gemspec
|
125
168
|
homepage: https://github.com/ali-sheiba/smart_error
|
126
169
|
licenses:
|
@@ -141,8 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
184
|
- !ruby/object:Gem::Version
|
142
185
|
version: '0'
|
143
186
|
requirements: []
|
144
|
-
|
145
|
-
rubygems_version: 2.6.13
|
187
|
+
rubygems_version: 3.1.4
|
146
188
|
signing_key:
|
147
189
|
specification_version: 4
|
148
190
|
summary: Simple way to handle custom error codes and messages
|
data/smart_error-1.0.1.gem
DELETED
Binary file
|