class Golem::DB::Static

Static database for small installations. To use it, write:

Golem.configure do |cfg|
  cfg.db = 'static'
  Golem::DB.setup do |db|
    db.add_user 'test_user'
    db.add_repository 'test_repository', 'test_user'
    db.add_key 'test_user', 'test_key'
  end
end

Public Class Methods

new() click to toggle source

Create database, initialize users, repositories and ssh_keys to [].

# File lib/golem/db/static.rb, line 12
def initialize
    @users, @repositories, @ssh_keys = [], [], []
end

Public Instance Methods

add_key(user_name, key) click to toggle source

Add key to database. @param [String] user_name username, @param [String] key ssh key (e.g. +cat id_rsa.pub+). @return [Array] list of keys.

# File lib/golem/db/static.rb, line 57
def add_key(user_name, key)
    abort "Cannot add key, user not found!" unless users(:return => :array).include?(user_name)
    @ssh_keys << {:user_name => user_name, :key => key}
end
add_repository(name, user_name) click to toggle source

Add repository to database. @param [String] name repository name, @param [String] user_name username. @return [Array] list of repositories.

# File lib/golem/db/static.rb, line 48
def add_repository(name, user_name)
    abort "Cannot add repository, user not found!" unless users(:return => :array).include?(user_name)
    @repositories << {:name => name, :user_name => user_name}
end
add_user(name) click to toggle source

Add user to database. @param [String] name username, @return [Array] list of users.

# File lib/golem/db/static.rb, line 40
def add_user(name)
    @users << {:name => name}
end
repositories(opts = {}) click to toggle source

Retrieve repositories. @param [Hash] opts options, see {Golem::DB}. @return [Array] list of repotitories.

# File lib/golem/db/static.rb, line 26
def repositories(opts = {})
    opts[:return] == :array ? @repositories.collect {|r| r[:name]} : @repositories
end
setup() { |self| ... } click to toggle source

Setup database.

# File lib/golem/db/static.rb, line 63
def setup(&block)
    yield self
end
ssh_keys(opts = {}) click to toggle source

Retrieve ssh keys. @param [Hash] opts options, see {Golem::DB}. @return [Array] list of keys.

# File lib/golem/db/static.rb, line 33
def ssh_keys(opts = {})
    opts[:return] == :array ? @ssh_keys.collect {|k| [k[:user_name], k[:key]]} : @ssh_keys
end
users(opts = {}) click to toggle source

Retrieve users. @param [Hash] opts options, see {Golem::DB}. @return [Array] list of users.

# File lib/golem/db/static.rb, line 19
def users(opts = {})
    opts[:return] == :array ? @users.collect {|u| u[:name]} : @users
end