Method: ActionService::Container::ClassMethods#service

Defined in:
lib/action_service/container.rb

#service(name, object = nil, options = {}, &block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/action_service/container.rb', line 17

def service(name, object=nil, options={}, &block)
  if (object && block_given?) || (object.nil? && block.nil?)
    raise(ContainerError, "either service, or a block must be given")
  end
  name = name.to_sym
  if block_given?
    info = { name => { :block => block } }
  else
    info = { name => { :object => object } }
  end
  write_inheritable_hash("action_services", info)
  call_service_definition_callbacks(self, name, info)
end