module StateMate::Adapters

Constants

API_METHOD_NAMES
DEFAULT_KEY_SEP

Default character to split string keys on.

@return [String]

Public Class Methods

get(name) click to toggle source
# File lib/state_mate/adapters.rb, line 34
  def self.get name
    # return it if it's already loaded
    return @@index[name] if @@index.key? name
    
    # try to require it
    begin
      require "state_mate/adapters/#{ name }"
    rescue LoadError => e
      StateMate.debug "failed to require adapter #{ name }", e
    end
    
    unless @@index.key? name
      raise StateMate::Error::AdapterNotFoundError.new NRSER.dedent <<-END
        adapter #{ name.inspect } was not found.
        
        registered adapters:
        
        #{ @@index.pretty_inspect }
        
      END
    end
    
    @@index[name]
  end
included(base) click to toggle source
# File lib/state_mate/adapters.rb, line 22
def self.included base
  base.extend IncludeClassMethods
end
register(name, obj) click to toggle source
# File lib/state_mate/adapters.rb, line 26
def self.register name, obj
  unless name.is_a? String
    raise StateMate::Error::TypeError.new name, "name must be a String"
  end
  
  @@index[name] = obj
end