Class: SuperProcess::Core
- Inherits:
-
Object
- Object
- SuperProcess::Core
show all
- Includes:
- ActiveModel::Validations, ActiveSupport::Callbacks
- Defined in:
- lib/super_process/core.rb
Constant Summary
collapse
- ValidError =
Class.new(StandardError)
- CALLBACK_CALL =
:"__super_process__call"
- CALLBACK_TASK =
:"__super_process__task"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.after_call(method_name) ⇒ Object
27
28
29
|
# File 'lib/super_process/core.rb', line 27
def self.after_call(method_name)
set_callback CALLBACK_CALL, :after, method_name
end
|
.after_task(method_name) ⇒ Object
35
36
37
|
# File 'lib/super_process/core.rb', line 35
def self.after_task(method_name)
set_callback CALLBACK_TASK, :after, method_name
end
|
.before_call(method_name) ⇒ Object
23
24
25
|
# File 'lib/super_process/core.rb', line 23
def self.before_call(method_name)
set_callback CALLBACK_CALL, :before, method_name
end
|
.before_task(method_name) ⇒ Object
31
32
33
|
# File 'lib/super_process/core.rb', line 31
def self.before_task(method_name)
set_callback CALLBACK_TASK, :before, method_name
end
|
.callable(&block) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/super_process/core.rb', line 47
def self.callable(&block)
define_method :call! do |params={}|
params.each do |attr, value|
public_send("#{attr}=", value) if respond_to?("#{attr}=")
end
run_callbacks CALLBACK_CALL do
raise ValidError, "Validation Error" if valid? == false
run_callbacks CALLBACK_TASK do
instance_eval(&block)
end
end
end
define_method :call do |params={}|
begin
@result = call!(params)
true
rescue ValidError
false
end
end
end
|
.init(model_name) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/super_process/core.rb', line 39
def self.init(model_name)
attr_accessor model_name
define_method :initialize do |model|
super({})
self.send("#{model_name}=", model)
end
end
|
Instance Method Details
#error_message ⇒ Object
74
75
76
|
# File 'lib/super_process/core.rb', line 74
def error_message
errors.messages.values.first.first if errors.messages.values.present?
end
|
#error_messages ⇒ Object
78
79
80
|
# File 'lib/super_process/core.rb', line 78
def error_messages
errors.messages.values.flatten
end
|
#result ⇒ Object
70
71
72
|
# File 'lib/super_process/core.rb', line 70
def result
@result
end
|