cuprum 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ require 'cuprum'
2
+
3
+ module Cuprum
4
+ # Namespace for custom Cuprum error classes.
5
+ module Errors; end
6
+ end
@@ -1,14 +1,14 @@
1
- require 'cuprum'
1
+ require 'cuprum/errors'
2
2
 
3
- module Cuprum
3
+ module Cuprum::Errors
4
4
  # Error class for calling a Command that was not given a definition block
5
5
  # or have a #process method defined.
6
- class NotImplementedError < StandardError
7
- # Error message for a NotImplementedError.
6
+ class ProcessNotImplementedError < StandardError
7
+ # Error message for a ProcessNotImplementedError.
8
8
  DEFAULT_MESSAGE = 'no implementation defined for command'.freeze
9
9
 
10
10
  def initialize message = nil
11
11
  super(message || DEFAULT_MESSAGE)
12
- end # constructor
13
- end # class
14
- end # module
12
+ end
13
+ end
14
+ end
@@ -61,9 +61,9 @@ module Cuprum
61
61
  # @yield If a block argument is given, it will be passed to the
62
62
  # implementation.
63
63
  #
64
- # @raise [Cuprum::NotImplementedError] Unless a block was passed to the
65
- # constructor or the #process method was overriden by a Command
66
- # subclass.
64
+ # @raise [Cuprum::Errors::ProcessNotImplementedError] Unless a block was
65
+ # passed to the constructor or the #process method was overriden by a
66
+ # Command subclass.
67
67
  #
68
68
  # @see Cuprum::Command#call
69
69
  def call *args, &block
@@ -1,4 +1,4 @@
1
- require 'cuprum/not_implemented_error'
1
+ require 'cuprum/errors/process_not_implemented_error'
2
2
  require 'cuprum/utils/result_not_empty_warning'
3
3
 
4
4
  module Cuprum
@@ -94,12 +94,10 @@ module Cuprum
94
94
  # @yield If a block argument is given, it will be passed to the
95
95
  # implementation.
96
96
  #
97
- # @raise [Cuprum::NotImplementedError] Unless the #process method was
98
- # overriden.
97
+ # @raise [Cuprum::Errors::ProcessNotImplementedError] Unless the #process
98
+ # method was overriden.
99
99
  def call *args, &block
100
- result = build_result(nil, :errors => build_errors)
101
-
102
- process_with_result(result, *args, &block)
100
+ process_with_result(build_result, *args, &block)
103
101
  end # method call
104
102
 
105
103
  private
@@ -108,20 +106,8 @@ module Cuprum
108
106
  # is being called.
109
107
  attr_reader :result
110
108
 
111
- # @!visibility public
112
- #
113
- # Generates an empty errors object. When the command is called, the result
114
- # will have its #errors property initialized to the value returned by
115
- # #build_errors. By default, this is an array. If you want to use a custom
116
- # errors object type, override this method in a subclass.
117
- #
118
- # @return [Array] An empty errors object.
119
- def build_errors
120
- []
121
- end # method build_errors
122
-
123
- def build_result value, errors:
124
- Cuprum::Result.new(value, :errors => errors)
109
+ def build_result value = nil, **options
110
+ Cuprum::Result.new(value, options)
125
111
  end # method build_result
126
112
 
127
113
  def merge_results result, other
@@ -153,13 +139,13 @@ module Cuprum
153
139
  #
154
140
  # @return [Object] the value of the result object to be returned by #call.
155
141
  #
156
- # @raise [Cuprum::NotImplementedError] Unless a block was passed to the
157
- # constructor or the #process method was overriden by a Command
158
- # subclass.
142
+ # @raise [Cuprum::Errors::ProcessNotImplementedError] Unless a block was
143
+ # passed to the constructor or the #process method was overriden by a
144
+ # Command subclass.
159
145
  #
160
146
  # @note This is a private method.
161
147
  def process *_args
162
- raise Cuprum::NotImplementedError, nil, caller(1..-1)
148
+ raise Cuprum::Errors::ProcessNotImplementedError, nil, caller(1..-1)
163
149
  end # method process
164
150
 
165
151
  def process_with_result result, *args, &block
@@ -6,9 +6,9 @@ module Cuprum
6
6
  # @param value [Object] The value returned by calling the command.
7
7
  # @param errors [Array] The errors (if any) generated when the command was
8
8
  # called.
9
- def initialize value = nil, errors: []
9
+ def initialize value = nil, errors: nil
10
10
  @value = value
11
- @errors = errors
11
+ @errors = errors.nil? ? build_errors : errors
12
12
  @status = nil
13
13
  @halted = false
14
14
  end # constructor
@@ -139,6 +139,18 @@ module Cuprum
139
139
 
140
140
  private
141
141
 
142
+ # @!visibility public
143
+ #
144
+ # Generates an empty errors object. When the command is called, the result
145
+ # will have its #errors property initialized to the value returned by
146
+ # #build_errors. By default, this is an array. If you want to use a custom
147
+ # errors object type, override this method in a subclass.
148
+ #
149
+ # @return [Array] An empty errors object.
150
+ def build_errors
151
+ []
152
+ end # method build_errors
153
+
142
154
  def update_errors other_result
143
155
  return if other_result.errors.empty?
144
156
 
@@ -8,7 +8,7 @@ module Cuprum
8
8
  # Major version.
9
9
  MAJOR = 0
10
10
  # Minor version.
11
- MINOR = 7
11
+ MINOR = 8
12
12
  # Patch version.
13
13
  PATCH = 0
14
14
  # Prerelease version.
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuprum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob "Merlin" Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-30 00:00:00.000000000 Z
11
+ date: 2018-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sleeping_king_studios-tools
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +115,9 @@ files:
101
115
  - lib/cuprum/built_in/null_operation.rb
102
116
  - lib/cuprum/chaining.rb
103
117
  - lib/cuprum/command.rb
104
- - lib/cuprum/not_implemented_error.rb
118
+ - lib/cuprum/command_factory.rb
119
+ - lib/cuprum/errors.rb
120
+ - lib/cuprum/errors/process_not_implemented_error.rb
105
121
  - lib/cuprum/operation.rb
106
122
  - lib/cuprum/processing.rb
107
123
  - lib/cuprum/result.rb