Module: Civil::Service
- Defined in:
- lib/civil/service.rb
Class Method Summary collapse
Instance Method Summary collapse
- #_conditions ⇒ Object
- #_meta ⇒ Object
- #add_condition(key, condition) ⇒ Object
- #add_meta(key, metadatum) ⇒ Object
- #initialize(params = {}) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/civil/service.rb', line 3 def self.included(klass) class << klass # Civil::Service.service # Wrapper method, used within service class # # service do # execute_step_1 # execute_step_2 # ... # end def service(&block) define_method '_run', &block end # Civil::Service.call # Initiate service execution and return standardized result # # result = MyService.call(foo: 1, bar: 'a') # # if result.ideal? # ... # else # ... # end def call(params = {}, &block) service = new(params) data = (block ? service.instance_eval(&block) : service._run) Civil::Result.new(data, service._conditions, service.) end end end |
Instance Method Details
#_conditions ⇒ Object
54 55 56 |
# File 'lib/civil/service.rb', line 54 def _conditions @_conditions ||= Civil::Hash.new end |
#add_condition(key, condition) ⇒ Object
42 43 44 45 46 |
# File 'lib/civil/service.rb', line 42 def add_condition(key, condition) conditions = (_conditions[key.to_sym] ||= Civil::Array.new) conditions << condition end |
#add_meta(key, metadatum) ⇒ Object
48 49 50 51 52 |
# File 'lib/civil/service.rb', line 48 def (key, ) = ([key.to_sym] ||= Civil::Array.new) << end |
#initialize(params = {}) ⇒ Object
36 37 38 39 40 |
# File 'lib/civil/service.rb', line 36 def initialize(params = {}) params.to_h.each do |(name, value)| instance_variable_set("@#{name}", value) end end |