module Servitude::Base::ClassMethods

Public Instance Methods

boot( app_id: ( host_namespace.name.split( '::' ).join( '-' ).downcase rescue nil ), app_name: ( host_namespace.name.split( '::' ).join( ' ' ) rescue nil ), author: nil, attribution: ( "v click to toggle source
# File lib/servitude/base.rb, line 21
def boot( app_id: ( host_namespace.name.split( '::' ).join( '-' ).downcase rescue nil ),
          app_name: ( host_namespace.name.split( '::' ).join( ' ' ) rescue nil ),
          author: nil,
          attribution: ( "v#{host_namespace::VERSION} Copyright © #{Time.now.year} #{author}" rescue nil ),
          use_config: false,
          default_config_path: nil,
          server_class: ( host_namespace::Server rescue "#{host_namespace.name}::Server" ))
  unless app_id
    raise ArgumentError, 'app_id keyword is required'
  end
  unless app_name
    raise ArgumentError, 'app_name keyword is required'
  end
  unless author
    raise ArgumentError, 'author keyword is required'
  end
  unless attribution
    raise ArgumentError, 'attribution keyword is required'
  end

  unless server_class
    raise ArgumentError, 'server_class keyword is required'
  end

  const_set :APP_ID, app_id
  const_set :APP_NAME, app_name
  const_set :AUTHOR, author
  const_set :ATTRIBUTION, attribution
  const_set :DEFAULT_CONFIG_PATH, default_config_path
  const_set :SERVER_CLASS, server_class
  const_set :USE_CONFIG, use_config

  host_namespace.boot_called = true
end
configure() { |configuration| ... } click to toggle source
# File lib/servitude/base.rb, line 88
def configure
  yield( configuration ) if block_given?
end
host_namespace() click to toggle source

Override to contradict convention of Server being nested in ::host_namespace

# File lib/servitude/base.rb, line 59
def host_namespace
  self
end
initialize_loggers( log_level: nil, filename: nil ) click to toggle source
# File lib/servitude/base.rb, line 72
def initialize_loggers( log_level: nil, filename: nil )
  raise ArgumentError, 'log_level keyword is required' unless log_level

  logger.adapter.close if logger && logger.adapter

  self.logger = Yell.new do |l|
    l.level = log_level
    if filename
      l.adapter :file, filename, :level => [:debug, :info, :warn]
    else
      l.adapter $stdout, :level => [:debug, :info, :warn]
      l.adapter $stderr, :level => [:error, :fatal]
    end
  end
end
server_class() click to toggle source
# File lib/servitude/base.rb, line 63
def server_class
  case self::SERVER_CLASS
    when String, Symbol
      eval self::SERVER_CLASS.to_s, binding, __FILE__, __LINE__
    else
      self::SERVER_CLASS
  end
end