Harbor Documentation

Harbor::Script

Class for defining and running daemonizable scripts.

  services = Harbor::Container.new
  services.register("mailer", Harbor::Mailer)

  class Processor < Harbor::Script

    attr_accessor :mailer

    def self.pid_file
      "tmp/processor.pid"
    end

    def self.log_file
      "log/processor.log"
    end

    def self.run!
      loop do
        # processing code
      end
    end
  end

  Harbor::Script::Runner.new(ARGV, services, Processor).run!

Parent

Included Modules

Attributes

  • options [RW] (Not documented)
  • services [RW] (Not documented)

Public Class Methods

log_file()

      # File lib/harbor/script.rb, line 65
65:     def self.log_file
66:       raise NotImplementedError.new("#{self}#log_file must be defined.")
67:     end

logger()

      # File lib/harbor/script.rb, line 47
47:     def self.logger
48:       @logger ||= begin
49:         logger = Logging::Logger[self]
50:         logger.additive = false
51:         logger.level = :info
52:         logger.add_appenders(Logging::Appenders::Stdout.new)
53:         logger
54:       end
55:     end

new()

      # File lib/harbor/script.rb, line 69
69:     def initialize
70:       @on_restart = lambda do
71:         exec("#{$0} #{'--daemonize' if @options[:daemonize]} start")
72:       end
73: 
74:       @pid_file = self.class.pid_file
75:       @log_file = self.class.log_file
76:     end

pid_file()

      # File lib/harbor/script.rb, line 61
61:     def self.pid_file
62:       raise NotImplementedError.new("#{self}#pid_file must be defined.")
63:     end

Public Instance Methods

log(message)

      # File lib/harbor/script.rb, line 78
78:     def log(message)
79:       if @options[:daemonize]
80:         self.class.logger << message + "\n"
81:       else
82:         puts message
83:       end
84:     end

logger()

      # File lib/harbor/script.rb, line 57
57:     def logger
58:       self.class.logger
59:     end

name()

      # File lib/harbor/script.rb, line 86
86:     def name
87:       $0
88:     end

run!()

      # File lib/harbor/script.rb, line 94
94:     def run!
95:       raise NotImplementedError.new("#{self}.run! must be defined.")
96:     end

stop()

      # File lib/harbor/script.rb, line 90
90:     def stop
91:       log ">> Stopping"
92:     end