code_error 0.9.3 → 1.0.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.
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_error
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sibevin Wang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-17 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2014-12-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
13
27
  description: A code-based customized error.
14
28
  email:
15
29
  - sibevin@gmail.com
@@ -17,18 +31,18 @@ executables: []
17
31
  extensions: []
18
32
  extra_rdoc_files: []
19
33
  files:
34
+ - HISTORY.md
20
35
  - LICENSE.txt
21
36
  - README.md
22
37
  - code_error.gemspec
23
38
  - lib/code_error.rb
24
- - lib/code_error/random_token_error.rb
25
39
  - lib/code_error/version.rb
26
40
  - test/test_all.rb
27
- - test/test_code_in_msg.rb
28
41
  - test/test_config.rb
42
+ - test/test_gen.rb
29
43
  - test/test_helper.rb
30
44
  - test/test_masked.rb
31
- - test/test_new.rb
45
+ - test/test_pos.rb
32
46
  homepage: https://github.com/sibevin/code_error
33
47
  licenses:
34
48
  - MIT
@@ -39,36 +53,36 @@ require_paths:
39
53
  - lib
40
54
  required_ruby_version: !ruby/object:Gem::Requirement
41
55
  requirements:
42
- - - '>='
56
+ - - ">="
43
57
  - !ruby/object:Gem::Version
44
58
  version: '0'
45
59
  required_rubygems_version: !ruby/object:Gem::Requirement
46
60
  requirements:
47
- - - '>='
61
+ - - ">="
48
62
  - !ruby/object:Gem::Version
49
63
  version: '0'
50
64
  requirements: []
51
65
  rubyforge_project:
52
- rubygems_version: 2.0.6
66
+ rubygems_version: 2.4.2
53
67
  signing_key:
54
68
  specification_version: 4
55
69
  summary: 'Inherit CodeError::Base to create your own code-based error. You need to
56
- implement the "error_codes" method which provides a hash to define your own error
57
- code map. class MyError < CodeError::Base private def error_codes { 20001 =>
58
- { status: :failed, msg: ''Purchase information format is incorrect.'' }, 20002 =>
59
- { status: :failed, msg: ''Device information format is incorrect.'' }, 20003 =>
60
- { status: :failed, msg: ''Unknown store.'' }, 20100 => { status: :duplicated, msg:
61
- ''A duplicated IAP request is sent.'' }, 20200 => { status: :retry, msg: ''Client
62
- should send the IAP request again.'' } } end end Raise an error with a code when
63
- you need. raise MyError.new(20001) Rescue and handle it. begin #... raise MyError.new(20001)
64
- #... rescue MyError => e raise e if e.internal? msg = e.msg code = e.code info =
65
- e.info data = e.data case(e.status) when :failed #... when :duplicated #... else
66
- #... end #... end Please see "README" to get more details.'
70
+ assign "error_codes" with a hash to define your own error code map. class MyError
71
+ < CodeError::Base error_codes({ purchase_info_incorrect: { status: :failed, msg:
72
+ ''Purchase information format is incorrect.'' }, device_info_incorrect: { status:
73
+ :failed, msg: ''Device information format is incorrect.'' }, unknown_store: { status:
74
+ :failed, msg: ''Unknown store.'' }, duplicated_request: { status: :duplicated, msg:
75
+ ''A duplicated IAP request is sent.'' }, resend_iap: { status: :retry, msg: ''Client
76
+ should send the IAP request again.'' } }) end Raise an error with a code when
77
+ you need. raise MyError.gen(:purchase_info_incorrect) Rescue and handle it. begin
78
+ #... raise MyError.gen(:purchase_info_incorrect) #... rescue MyError => e raise
79
+ e if e.internal? msg = e.msg code = e.code info = e.info data = e.data case(e.status)
80
+ when :failed #... when :duplicated #... else #... end #... end Please see "README"
81
+ to get more details.'
67
82
  test_files:
68
83
  - test/test_all.rb
69
- - test/test_code_in_msg.rb
70
84
  - test/test_config.rb
85
+ - test/test_gen.rb
71
86
  - test/test_helper.rb
72
87
  - test/test_masked.rb
73
- - test/test_new.rb
74
- has_rdoc:
88
+ - test/test_pos.rb
@@ -1,75 +0,0 @@
1
- module RandomToken
2
-
3
- # A customized exception for RandomToken
4
- class RandomTokenError < StandardError
5
-
6
- # Errors used in RandomToken
7
- ERRORS = {
8
- :unknown_seed => {
9
- :value => 1,
10
- :msg => "Unknown given seed"
11
- },
12
- :not_support_case => {
13
- :value => 2,
14
- :msg => "Case feature is not supported in this case, but the case option is given."
15
- },
16
- :not_support_friendly => {
17
- :value => 3,
18
- :msg => "Friendly feature is not supported in this case, but the friendly option is true."
19
- },
20
- :false_friendly_with_given_mask => {
21
- :value => 4,
22
- :msg => "The mask is given but the friendly option is false."
23
- },
24
- :invalid_strf_pattern => {
25
- :value => 5,
26
- :msg => "The given pattern is invalid."
27
- },
28
- :invalid_gen_arg => {
29
- :value => 6,
30
- :msg => "The given arg is invalid."
31
- },
32
- :mask_remove_all_seeds => {
33
- :value => 7,
34
- :msg => "The friendly mask removes all seeds."
35
- },
36
- :duplicated_option => {
37
- :value => 8,
38
- :msg => "The same options are given."
39
- },
40
- :invalid_option_value => {
41
- :value => 9,
42
- :msg => "The given option value is invalid."
43
- },
44
- }
45
-
46
- attr_reader :code, :value, :msg, :info
47
-
48
- # The RandomTokenError constructor.
49
- # @param error [Fixnum, String]
50
- # You can give a error number defined in the keys of {RandomToken::RandomTokenError::ERRORS} or a string message for internal usage.
51
- # @param info [Hash]
52
- # Anything you want to put in the info attribute of RandomTokenError.
53
- def initialize(error, info = {})
54
- @code = error
55
- @info = info
56
- if ERRORS.keys.include?(error)
57
- @value = ERRORS[error][:value]
58
- @msg = ERRORS[error][:msg]
59
- elsif error.class.name == 'String'
60
- @code = :internal
61
- @value = 90000
62
- @msg = error
63
- else
64
- @code = :internal
65
- @value = 99999
66
- @msg = "Internal Error"
67
- end
68
- end
69
-
70
- # Override the message method to show more information in RandomTokenError
71
- def message
72
- "RandomTokenError(#{@code.to_s}): value = #{@value}, msg = #{@msg}, info = #{@info.inspect}"
73
- end
74
- end
75
- end
@@ -1,85 +0,0 @@
1
- require "test/unit"
2
-
3
- $LOAD_PATH.unshift("#{File.dirname(__FILE__)}")
4
- require "test_helper"
5
- require "code_error"
6
-
7
- class TestCodeInMsg < Test::Unit::TestCase
8
-
9
- ERROR_CODE_1 = 1
10
- ERROR_MSG_1 = 'The error message for code 1.'
11
- ERROR_STATUS_1 = :failed
12
-
13
- class AppendError < CodeError::Base
14
- def error_codes
15
- {
16
- ERROR_CODE_1 => {
17
- status: ERROR_STATUS_1,
18
- msg: ERROR_MSG_1,
19
- }
20
- }
21
- end
22
-
23
- def config
24
- super.merge({
25
- :code_in_msg => :append
26
- })
27
- end
28
- end
29
-
30
- class PrependError < CodeError::Base
31
- def error_codes
32
- {
33
- ERROR_CODE_1 => {
34
- status: ERROR_STATUS_1,
35
- msg: ERROR_MSG_1,
36
- }
37
- }
38
- end
39
-
40
- def config
41
- super.merge({
42
- :code_in_msg => :prepand
43
- })
44
- end
45
- end
46
-
47
- class NoneError < CodeError::Base
48
- def error_codes
49
- {
50
- ERROR_CODE_1 => {
51
- status: ERROR_STATUS_1,
52
- msg: ERROR_MSG_1,
53
- }
54
- }
55
- end
56
-
57
- def config
58
- super.merge({
59
- :code_in_msg => :none
60
- })
61
- end
62
- end
63
-
64
- def test_code_in_msg_should_return_a_message_with_the_code_appended_after_it_if_append_config_is_given
65
- e = AppendError.new(ERROR_CODE_1)
66
- assert(e.msg == "#{ERROR_MSG_1}(#{ERROR_CODE_1})")
67
- end
68
-
69
- def test_code_in_msg_should_return_a_message_with_the_code_prepended_before_it_if_prepend_config_is_given
70
- e = PrependError.new(ERROR_CODE_1)
71
- assert(e.msg == "(#{ERROR_CODE_1})#{ERROR_MSG_1}")
72
- end
73
-
74
- def test_code_in_msg_should_return_a_message_without_the_code_if_none_config_is_given
75
- e = NoneError.new(ERROR_CODE_1)
76
- assert(e.msg == "#{ERROR_MSG_1}")
77
- end
78
-
79
- def test_code_in_msg_should_return_a_message_without_the_code_if_it_is_a_success_error
80
- e = AppendError.new(CodeError::SUCCESS_CODE)
81
- assert(e.msg == "#{CodeError::SUCCESS_MSG}")
82
- e = PrependError.new(CodeError::SUCCESS_CODE)
83
- assert(e.msg == "#{CodeError::SUCCESS_MSG}")
84
- end
85
- end
data/test/test_new.rb DELETED
@@ -1,100 +0,0 @@
1
- require "test/unit"
2
-
3
- $LOAD_PATH.unshift("#{File.dirname(__FILE__)}")
4
- require "test_helper"
5
- require "code_error"
6
-
7
- class TestNew < Test::Unit::TestCase
8
-
9
- class InvalidError < CodeError::Base; end;
10
-
11
- ERROR_CODE_1 = 1
12
- ERROR_MSG_1 = 'The error message for code 1.'
13
- ERROR_STATUS_1 = :failed
14
-
15
- ERROR_CODE_2 = 2
16
- ERROR_MSG_2 = 'The error message for code 2.'
17
- ERROR_STATUS_2 = :failed
18
-
19
- ERROR_CODE_UNDEFINED = 55688
20
-
21
- class TestError < CodeError::Base
22
- def error_codes
23
- {
24
- ERROR_CODE_1 => {
25
- :status => ERROR_STATUS_1,
26
- :msg => ERROR_MSG_1,
27
- },
28
- ERROR_CODE_2 => {
29
- :status => ERROR_STATUS_2,
30
- :msg => ERROR_MSG_2,
31
- :masked => true
32
- }
33
- }
34
- end
35
- end
36
-
37
- def test_new_should_raise_an_exception_if_the_error_codes_is_undefined
38
- assert_raise(RuntimeError) { InvalidError.new }
39
- end
40
-
41
- def test_new_should_return_the_correspond_data_if_given_code_is_defined
42
- e = TestError.new(ERROR_CODE_1)
43
- assert(e.code == ERROR_CODE_1)
44
- assert(e.status == ERROR_STATUS_1)
45
- assert(e.msg == "#{ERROR_MSG_1}(#{ERROR_CODE_1})")
46
- assert(e.data == { :code => ERROR_CODE_1,
47
- :status => ERROR_STATUS_1,
48
- :msg => "#{ERROR_MSG_1}(#{ERROR_CODE_1})",
49
- :info => {} })
50
- assert(e.message == e.data.inspect)
51
- assert(!e.internal?)
52
- end
53
-
54
- def test_new_should_return_an_internal_error_with_given_code_if_given_code_is_undefined
55
- e = TestError.new(ERROR_CODE_UNDEFINED)
56
- assert(e.code == ERROR_CODE_UNDEFINED)
57
- assert(e.status == CodeError::INTERNAL_STATUS)
58
- assert(e.msg == "#{CodeError::INTERNAL_MSG}(#{ERROR_CODE_UNDEFINED})")
59
- assert(e.internal?)
60
- end
61
-
62
- def test_new_should_return_an_internal_error_with_given_msg_if_given_code_is_a_string
63
- msg = 'An error message.'
64
- e = TestError.new(msg)
65
- assert(e.code == CodeError::INTERNAL_CODE)
66
- assert(e.status == CodeError::INTERNAL_STATUS)
67
- assert(e.msg == "#{msg}(#{CodeError::INTERNAL_CODE})")
68
- assert(e.internal?)
69
- end
70
-
71
- def test_new_should_return_an_success_error_if_given_code_is_a_success_code
72
- e = TestError.new(CodeError::SUCCESS_CODE)
73
- assert(e.code == CodeError::SUCCESS_CODE)
74
- assert(e.status == CodeError::SUCCESS_STATUS)
75
- assert(e.msg == "#{CodeError::SUCCESS_MSG}")
76
- assert(!e.internal?)
77
- end
78
-
79
- def test_new_should_mask_the_msg_if_given_msg_is_masked
80
- e = TestError.new(ERROR_CODE_1, :masked)
81
- assert(e.code == ERROR_CODE_1)
82
- assert(e.status == ERROR_STATUS_1)
83
- assert(e.msg == "#{CodeError::MASKED_MSG}(#{ERROR_CODE_1})")
84
- assert(!e.internal?)
85
- end
86
-
87
- def test_new_should_mask_the_msg_by_default_if_true_masked_config_is_given
88
- e = TestError.new(ERROR_CODE_2)
89
- assert(e.code == ERROR_CODE_2)
90
- assert(e.status == ERROR_STATUS_2)
91
- assert(e.msg == "#{CodeError::MASKED_MSG}(#{ERROR_CODE_2})")
92
- assert(!e.internal?)
93
- end
94
-
95
- def test_new_should_contain_the_info_if_an_info_is_given
96
- info = 'some information'
97
- e = TestError.new(ERROR_CODE_1, nil, info)
98
- assert(e.info == info)
99
- end
100
- end