Module: Ambry

Extended by:
Ambry
Included in:
Ambry
Defined in:
lib/ambry.rb,
lib/ambry/model.rb,
lib/ambry/mapper.rb,
lib/ambry/adapter.rb,
lib/ambry/version.rb,
lib/ambry/hash_proxy.rb,
lib/ambry/active_model.rb,
lib/ambry/adapters/file.rb,
lib/ambry/adapters/yaml.rb,
lib/ambry/abstract_key_set.rb

Overview

Ambry is a database and ORM replacement for small, mostly static models.

Ambry is free software released under the terms of the MIT License.

Author:

  • Norman Clarke

Defined Under Namespace

Modules: ActiveModel, Adapters, Model, Version Classes: AbstractKeySet, Adapter, AmbryError, HashProxy, HashProxySet, KeyIterator, Mapper, NotFoundError

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#adaptersObject (readonly)

A hash of all instantiated Ambry adapters.



24
25
26
# File 'lib/ambry.rb', line 24

def adapters
  @adapters
end

#default_adapter_nameObject (readonly)

The default adapter name.



20
21
22
# File 'lib/ambry.rb', line 20

def default_adapter_name
  @default_adapter_name
end

Instance Method Details

#register_adapter(adapter) ⇒ Object

Registers an adapter with Ambry. This facilitates allowing models to specify an adapter by name rather than class or instance.

Parameters:

  • adapter (Symbol)

    The adapter name.

See Also:



32
33
34
35
36
37
38
39
40
# File 'lib/ambry.rb', line 32

def register_adapter(adapter)
  name = adapter.name.to_sym
  if adapters[name]
    raise AmbryError, "Adapter #{name.inspect} already registered"
  end
  @lock.synchronize do
    adapters[name] = adapter
  end
end

#remove_adapter(name) ⇒ Object

Removes an adapter from Ambry.

Parameters:

  • adapter (Symbol)

    The adapter name.



45
46
47
48
49
50
# File 'lib/ambry.rb', line 45

def remove_adapter(name)
  @lock.synchronize do
    adapters[name] = nil
    adapters.delete name
  end
end