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
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 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 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 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
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 database.
# File lib/golem/db/static.rb, line 63 def setup(&block) yield self end
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
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