Sha256: 9bf7829349a21878b50c9b44c3bfc0097d2d845a3ef2a6ee09023e0250c30c77

Contents?: true

Size: 777 Bytes

Versions: 1

Compression:

Stored size: 777 Bytes

Contents

require "suimin/version"

module Suimin

  autoload :Sleeper, 'suimin/sleeper'

  class TypeError       < Exception; end
  class SleeperNotFound < StandardError; end

  # a hash whose key is the sleeper's name, and the value is the sleeper
  @@sleepers = {}

  class << self
    def sleepers
      @@sleepers
    end

    def add_sleeper(_sleeper)
      raise TypeError.new("sleeper should be Suimin::Sleeper instance") unless _sleeper.is_a?(Suimin::Sleeper)

      sleepers[_sleeper.name] = _sleeper
    end

    def let_sleeper_sleep(_sleeper_name)
      if (sleeper = sleepers[_sleeper_name])
        sleeper.sleep
      else
        raise SleeperNotFound.new("Sleeper #{_sleeper_name} cannot be found")
      end
    end

  end

  def self.config
    yield self
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
suimin-0.0.1 lib/suimin.rb