Class: AgentXmpp::Boot

Inherits:
Object show all
Defined in:
lib/agent_xmpp/client/boot.rb

Overview


Class Method Summary collapse

Class Method Details

.add_path(dir) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….….. private .….….….….….….….….….….….….….….….….….….….….….….….….……



66
67
68
# File 'lib/agent_xmpp/client/boot.rb', line 66

def add_path(dir)
  File.join(AgentXmpp.app_path, dir)
end

.bootObject

.….….….….….….….….….….….….….….….….….….….….….….….….… start application .….….….….….….….….….….….….….….….….….….….….….….….….……

Raises:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/agent_xmpp/client/boot.rb', line 13

def boot
  
  AgentXmpp.config_file = File.join(AgentXmpp.app_path, "agent_xmpp.yml")

  AgentXmpp.log_file = add_path(AgentXmpp.log_file) if AgentXmpp.log_file.kind_of?(String)
  AgentXmpp.logger = Logger.new(AgentXmpp.log_file, 10, 1024000)
  AgentXmpp.logger.level = Logger::WARN 

  call_if_implemented(:call_before_start)

  AgentXmpp.logger.info "STARTING AgentXmpp"
  AgentXmpp.logger.info "APPLICATION PATH: #{AgentXmpp.app_path}"
  AgentXmpp.logger.info "LOG FILE: #{AgentXmpp.log_file.kind_of?(String) ? AgentXmpp.log_file : "STDOUT"}"
  AgentXmpp.logger.info "CONFIGURATION FILE: #{AgentXmpp.config_file}"

  raise AgentXmppError, "Configuration file #{AgentXmpp.config_file} required." unless File.exist?(AgentXmpp.config_file) 

  AgentXmpp.config = File.open(AgentXmpp.config_file) {|yf| YAML::load(yf)}
  
  AgentXmpp.create_agent_xmpp_db  
  AgentXmpp.create_in_memory_db        
  AgentXmpp.upgrade_agent_xmpp_db
  Contact.load_config 
  Publication.load_config 
          
  AgentXmpp::Client.new().connect

end

.call_if_implemented(method, *args) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….… application deligate methods .….….….….….….….….….….….….….….….….….….….….….….….….……



45
46
47
# File 'lib/agent_xmpp/client/boot.rb', line 45

def call_if_implemented(method, *args)
  send(method, *args) if respond_to?(method)
end

.callbacks(*args) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….….….



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/agent_xmpp/client/boot.rb', line 50

def callbacks(*args)
  args.each do |meth| 
    instance_eval <<-do_eval
      def call_#{meth}(*args)
        @array_#{meth}.each{|m| m.call(*args)} unless @array_#{meth}.nil?
      end
      def #{meth}(&blk)
        (@array_#{meth} ||= []) << blk
      end
    do_eval
  end
end