Class: NiftyServices::BaseService
- Inherits:
-
Object
- Object
- NiftyServices::BaseService
show all
- Defined in:
- lib/nifty_services/base_service.rb,
lib/nifty_services/extensions/callbacks.rb
Constant Summary
collapse
- CALLBACKS =
[
:before_execute_service_action,
:after_execute_service_action,
:before_delete_record,
:after_delete_record,
:before_update_record,
:after_update_record,
:before_build_record,
:after_build_record,
:before_initialize,
:after_initialize,
:before_execute,
:after_execute,
:before_success,
:after_success,
:before_error,
:after_error,
:before_create,
:after_create,
:before_update,
:after_update,
:before_delete,
:after_delete,
:before_action,
:after_action
].freeze
- @@registered_callbacks =
Hash.new {|k,v| k[v] = Hash.new }
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}, initial_response_status = 400) ⇒ BaseService
Returns a new instance of BaseService.
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/nifty_services/base_service.rb', line 35
def initialize(options = {}, initial_response_status = 400)
@options = with_default_options(options)
@errors = []
@logger = @options[:logger] || default_logger
@executed = false
with_before_and_after_callbacks(:initialize) do
set_response_status(initial_response_status)
end
end
|
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
8
9
10
|
# File 'lib/nifty_services/base_service.rb', line 8
def errors
@errors
end
|
#logger ⇒ Object
Also known as:
log
Returns the value of attribute logger.
8
9
10
|
# File 'lib/nifty_services/base_service.rb', line 8
def logger
@logger
end
|
#options ⇒ Object
Returns the value of attribute options.
8
9
10
|
# File 'lib/nifty_services/base_service.rb', line 8
def options
@options
end
|
#response_status ⇒ Object
Returns the value of attribute response_status.
7
8
9
|
# File 'lib/nifty_services/base_service.rb', line 7
def response_status
@response_status
end
|
#response_status_code ⇒ Object
Returns the value of attribute response_status_code.
7
8
9
|
# File 'lib/nifty_services/base_service.rb', line 7
def response_status_code
@response_status_code
end
|
Class Method Details
.concern(concern_module) ⇒ Object
Also known as:
include_concern
28
29
30
|
# File 'lib/nifty_services/base_service.rb', line 28
def concern(concern_module)
self.include(concern_module)
end
|
.define_error_response_method(reason_string, status_code) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/nifty_services/base_service.rb', line 16
def define_error_response_method(reason_string, status_code)
method_name = Util.normalized_callback_name(reason_string, '_error')
define_method method_name do |message_key, options = {}|
error(status_code, message_key, options)
end
define_method "#{method_name}!" do |message_key, options = {}|
error!(status_code, message_key, options)
end
end
|
.register_callback(callback_name, method_name, &block) ⇒ Object
34
35
36
37
38
39
40
41
|
# File 'lib/nifty_services/extensions/callbacks.rb', line 34
def register_callback(callback_name, method_name, &block)
method_name = Util.normalized_callback_name(method_name)
@@registered_callbacks[self.name.to_sym][callback_name] ||= []
@@registered_callbacks[self.name.to_sym][callback_name] << method_name
register_callback_action(method_name, &block)
end
|
.register_callback_action(callback_name, &block) ⇒ Object
43
44
45
|
# File 'lib/nifty_services/extensions/callbacks.rb', line 43
def register_callback_action(callback_name, &block)
define_method(callback_name, &block)
end
|
.register_error_response_method(reason_string, status_code) ⇒ Object
11
12
13
14
|
# File 'lib/nifty_services/base_service.rb', line 11
def register_error_response_method(reason_string, status_code)
NiftyServices::Configuration.add_response_error_method(reason_string, status_code)
define_error_response_method(reason_string, status_code)
end
|
Instance Method Details
#add_error(error) ⇒ Object
79
80
81
82
|
# File 'lib/nifty_services/base_service.rb', line 79
def add_error(error)
add_method = error.is_a?(Array) ? :concat : :push
@errors.send(add_method, error)
end
|
#callback_fired?(callback_name) ⇒ Boolean
Also known as:
callback_called?
59
60
61
62
63
64
65
|
# File 'lib/nifty_services/extensions/callbacks.rb', line 59
def callback_fired?(callback_name)
return (
callback_fired_in?(@fired_callbacks, callback_name) ||
callback_fired_in?(@custom_fired_callbacks, callback_name) ||
callback_fired_in?(@custom_fired_callbacks, "#{callback_name}_callback")
)
end
|
#default_logger ⇒ Object
84
85
86
|
# File 'lib/nifty_services/base_service.rb', line 84
def default_logger
NiftyServices.config.logger
end
|
#execute ⇒ Object
47
48
49
|
# File 'lib/nifty_services/base_service.rb', line 47
def execute
not_implemented_exception(__method__)
end
|
#executed? ⇒ Boolean
Also known as:
runned?
90
91
92
|
# File 'lib/nifty_services/base_service.rb', line 90
def executed?
@executed == true
end
|
#fail? ⇒ Boolean
59
60
61
|
# File 'lib/nifty_services/base_service.rb', line 59
def fail?
!success?
end
|
#option_disabled?(key) ⇒ Boolean
75
76
77
|
# File 'lib/nifty_services/base_service.rb', line 75
def option_disabled?(key)
!option_enabled?(key)
end
|
#option_enabled?(key) ⇒ Boolean
71
72
73
|
# File 'lib/nifty_services/base_service.rb', line 71
def option_enabled?(key)
option_exists?(key) && [true, 'true'].member?(@options[key.to_sym])
end
|
#option_exists?(key) ⇒ Boolean
67
68
69
|
# File 'lib/nifty_services/base_service.rb', line 67
def option_exists?(key)
@options && @options.key?(key.to_sym)
end
|
#register_callback(callback_name, method_name, &block) ⇒ Object
69
70
71
72
73
74
|
# File 'lib/nifty_services/extensions/callbacks.rb', line 69
def register_callback(callback_name, method_name, &block)
method_name = normalized_callback_name(method_name).to_sym
@registered_callbacks[callback_name.to_sym] << method_name
register_callback_action(callback_name, &block)
end
|
#register_callback_action(callback_name, &block) ⇒ Object
76
77
78
79
|
# File 'lib/nifty_services/extensions/callbacks.rb', line 76
def register_callback_action(callback_name, &block)
cb_name = normalized_callback_name(callback_name).to_sym
@callbacks_actions[cb_name.to_sym] = block
end
|
#success? ⇒ Boolean
55
56
57
|
# File 'lib/nifty_services/base_service.rb', line 55
def success?
@success == true && valid?
end
|
#valid? ⇒ Boolean
51
52
53
|
# File 'lib/nifty_services/base_service.rb', line 51
def valid?
return @errors.empty?
end
|