Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 0.99 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #
  2. # kythera: services for TSora IRC networks
  3. # lib/kythera/server.rb: Server class
  4. #
  5. # Copyright (c) 2011 Eric Will <rakaur@malkier.net>
  6. # Rights to this code are documented in LICENSE
  7. #
  8.  
  9. require 'kythera'
  10.  
  11. # This is the base class for a service. All services modules must subclass this.
  12. class Service
  13.     include Loggable
  14.  
  15.     # A list of all services
  16.     @@services = []
  17.  
  18.     # Attribute reader for `@@services`
  19.     #
  20.     # @return [Hash] a list of all services
  21.     #
  22.     def self.services
  23.         @@services
  24.     end
  25.  
  26.     # Detect when we are subclassed
  27.     #
  28.     # @param [Class] klass the class that subclasses us
  29.     #
  30.     def self.inherited(klass)
  31.         puts "new service: #{klass}"
  32.         @@services << klass
  33.         abort
  34.     end
  35.  
  36.     # This should never be called except from a subclass, and only exists
  37.     # as a guide for arguments.
  38.     def initialize(logger)
  39.         @logger = nil
  40.  
  41.         self.logger = logger
  42.     end
  43. end
  44.  
  45. class Example < Service
  46. end