Module: ActionService::Container::ClassMethods

Defined in:
lib/action_service/container.rb

Instance Method Summary collapse

Instance Method Details

#add_service_definition_callback(&block) ⇒ Object



31
32
33
# File 'lib/action_service/container.rb', line 31

def add_service_definition_callback(&block)
  write_inheritable_array("service_definition_callbacks", [block])
end

#has_service?(name) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/action_service/container.rb', line 35

def has_service?(name)
  services.has_key?(name.to_sym)
end

#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

#servicesObject



39
40
41
# File 'lib/action_service/container.rb', line 39

def services
  read_inheritable_attribute("action_services") || {}
end