Class: Mozaik::Service
- Inherits:
-
Object
show all
- Defined in:
- lib/mozaik/service.rb,
lib/mozaik/service/types.rb,
lib/mozaik/service/errors.rb,
lib/mozaik/service/result.rb,
lib/mozaik/service/failure.rb,
lib/mozaik/service/version.rb,
lib/mozaik/service/attribute_value.rb
Defined Under Namespace
Modules: Types
Classes: AttributeValue, Errors, Failure, Halt, Result
Constant Summary
collapse
- VERSION =
'1.0.1'
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(attributes = {}) ⇒ Service
Returns a new instance of Service.
53
54
55
56
57
|
# File 'lib/mozaik/service.rb', line 53
def initialize(attributes = {})
initialize_errors
initialize_inputs(attributes)
initialize_attributes
end
|
Class Method Details
.attribute(name, type:, required: false, default: nil) ⇒ Object
21
22
23
24
|
# File 'lib/mozaik/service.rb', line 21
def self.attribute(name, type:, required: false, default: nil)
@attributes ||= {}
@attributes[name] = { type: type, required: required, default: default }
end
|
.attributes ⇒ Object
26
27
28
|
# File 'lib/mozaik/service.rb', line 26
def self.attributes
@attributes || {}
end
|
.attributes_names ⇒ Object
30
31
32
|
# File 'lib/mozaik/service.rb', line 30
def self.attributes_names
attributes.keys
end
|
.run(attributes = {}) ⇒ Object
42
43
44
|
# File 'lib/mozaik/service.rb', line 42
def self.run(attributes = {})
new(attributes).run
end
|
.run!(attributes = {}) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/mozaik/service.rb', line 46
def self.run!(attributes = {})
outcome = run(attributes)
raise Failure, outcome.errors unless outcome.success?
outcome.result
end
|
.validate(method, *args) ⇒ Object
38
39
40
|
# File 'lib/mozaik/service.rb', line 38
def self.validate(method, *args)
validations.push([method, args]) unless validations.include?([method, args])
end
|
.validations ⇒ Object
34
35
36
|
# File 'lib/mozaik/service.rb', line 34
def self.validations
@validations ||= []
end
|
Instance Method Details
#run ⇒ Object
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/mozaik/service.rb', line 59
def run
halt! unless valid?
validate
halt! unless valid?
result = perform
halt! unless valid?
return_success(result)
rescue Halt
return_failure(@errors)
end
|