class Spurious::App

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/spurious/app.rb, line 16
def initialize(*args)
  super
end
state_methods() click to toggle source
# File lib/spurious/app.rb, line 20
def self.state_methods
  methods = {
    :init => {
      :aliases => []
      },
    :start => {
      :aliases => ["up", "boot"]
      },
    :update => {
      :aliases => []
      },
    :stop => {
      :aliases => ["down", "halt"]
      },
    :delete => {
      :aliases => []
      }
    }
  methods.each do |meth, options|
    desc meth.to_s, "#{meth} the spurious containers"
    define_method(meth) do
      event_loop meth
    end

    unless options[:aliases].empty? then
      options[:aliases].each do |alias_meth|
        desc alias_meth, "alias for `spurious #{meth}`"
        define_method(alias_meth) do
          event_loop meth
        end
      end
    end
  end
end

Public Instance Methods

ports() click to toggle source
# File lib/spurious/app.rb, line 59
def ports

  if server_available? then
    EventMachine.run do
        EventMachine::connect options[:server_ip], options[:server_port], Spurious::Command::Ports, :ports, self
    end
  end
end

Protected Instance Methods

event_loop(type) click to toggle source
# File lib/spurious/app.rb, line 97
def event_loop(type)

  if server_available? then
    EventMachine.run do
        EventMachine::connect options[:server_ip], options[:server_port], Spurious::Command::State, type, self
    end
  end

end
server_available?() click to toggle source
# File lib/spurious/app.rb, line 70
    def server_available?
      available = true

      Timeout.timeout(1) do
        begin
          TCPSocket.new(options[:server_ip], options[:server_port])
        rescue Exception
          available = false
          say <<-eos

#{set_color("Connection to spurious server: #{options[:server_ip]}:#{options[:server_port]} has timed out.", :red)}

#{set_color('To check the status of the server, run:', :white)}
#{set_color('$ spurious-server status', :cyan)}

#{set_color('To start the server, run:', :white)}
#{set_color('$ spurious-server start', :cyan)}

          eos
        end
      end

      available

    end