Class: Coral::Cloud::Base
- Inherits:
-
Memory
- Object
- Memory
- Coral::Cloud::Base
- Defined in:
- lib/coral_cloud/base.rb
Constant Summary collapse
- @@instances =
Properties
{}
Class Method Summary collapse
-
.[](name) ⇒ Object
—————————————————————————–.
-
.create(name, options = {}) ⇒ Object
—————————————————————————– Constructor / Destructor.
-
.delete(name) ⇒ Object
—.
Instance Method Summary collapse
-
#delete_repository(local_repo) ⇒ Object
—.
-
#delete_server(name, key = nil) ⇒ Object
—.
-
#delete_setting(group, key) ⇒ Object
—.
-
#delete_settings(group) ⇒ Object
—.
-
#delete_share(name, key = nil) ⇒ Object
—.
-
#initialize(options = {}) ⇒ Base
constructor
—————————————————————————–.
-
#repositories(reset = false) ⇒ Object
—————————————————————————– Property accessors / modifiers.
-
#repository(local_repo, default = '', format = false) ⇒ Object
—.
-
#search(server, key, default = '', format = false) ⇒ Object
—————————————————————————–.
-
#server(name, key = nil, default = {}, format = false) ⇒ Object
—.
-
#servers(reset = false) ⇒ Object
—————————————————————————–.
-
#set_repositories(values = {}) ⇒ Object
—.
-
#set_repository(local_repo, remote_repo) ⇒ Object
—.
-
#set_server(name, key = nil, value = {}) ⇒ Object
—.
-
#set_servers(values = {}) ⇒ Object
—.
-
#set_setting(group, key, value = '') ⇒ Object
—.
-
#set_settings(group, values = {}) ⇒ Object
—.
-
#set_share(name, key = nil, value = {}) ⇒ Object
—.
-
#set_shares(values = {}) ⇒ Object
—.
-
#setting(group, key, default = '', format = false) ⇒ Object
—.
-
#settings(group) ⇒ Object
—————————————————————————–.
-
#share(name, key = nil, default = {}, format = false) ⇒ Object
—.
-
#shares(reset = false) ⇒ Object
—————————————————————————–.
Constructor Details
#initialize(options = {}) ⇒ Base
39 40 41 42 43 44 45 |
# File 'lib/coral_cloud/base.rb', line 39 def initialize( = {}) super() @repositories = {} @shares = {} @servers = {} end |
Class Method Details
.[](name) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/coral_cloud/base.rb', line 30 def self.[](name) if ! @@instances.has_key?(name) || ! @@instances[name] @@instances[name] = new({ :name => name }) end return @@instances[name] end |
.create(name, options = {}) ⇒ Object
Constructor / Destructor
14 15 16 17 18 |
# File 'lib/coral_cloud/base.rb', line 14 def self.create(name, = {}) [:name] = name unless .has_key?(:name) @@instances[name] = new() return @@instances[name] end |
.delete(name) ⇒ Object
22 23 24 25 26 |
# File 'lib/coral_cloud/base.rb', line 22 def self.delete(name) if @@instances.has_key?(name) && @@instances[name] @@instances.delete(name) end end |
Instance Method Details
#delete_repository(local_repo) ⇒ Object
85 86 87 |
# File 'lib/coral_cloud/base.rb', line 85 def delete_repository(local_repo) return delete_group('repositories', local_repo, nil) end |
#delete_server(name, key = nil) ⇒ Object
203 204 205 |
# File 'lib/coral_cloud/base.rb', line 203 def delete_server(name, key = nil) return delete_group('servers', name, key) end |
#delete_setting(group, key) ⇒ Object
121 122 123 |
# File 'lib/coral_cloud/base.rb', line 121 def delete_setting(group, key) return delete_group('settings', group, key) end |
#delete_settings(group) ⇒ Object
103 104 105 |
# File 'lib/coral_cloud/base.rb', line 103 def delete_settings(group) return delete_group('settings', group, nil) end |
#delete_share(name, key = nil) ⇒ Object
162 163 164 |
# File 'lib/coral_cloud/base.rb', line 162 def delete_share(name, key = nil) return delete_group('shares', name, key) end |
#repositories(reset = false) ⇒ Object
Property accessors / modifiers
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/coral_cloud/base.rb', line 50 def repositories(reset = false) if reset || @repositories.empty? @repositories = {} get('repositories', {}, :hash).each do |submodule, remote_dir| @repositories[submodule] = Coral::Repository.new({ :name => submodule, :directory => @directory, :submodule => submodule, :remote_dir => remote_dir, }) end end return @repositories end |
#repository(local_repo, default = '', format = false) ⇒ Object
73 74 75 |
# File 'lib/coral_cloud/base.rb', line 73 def repository(local_repo, default = '', format = false) return get_group('repositories', local_repo, nil, default, format) end |
#search(server, key, default = '', format = false) ⇒ Object
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/coral_cloud/base.rb', line 209 def search(server, key, default = '', format = false) value = default server_info = server(server) if server_info[key] value = server_info[key] else settings = {} if server_info.has_key?('settings') array(server_info['settings']).each do |group| settings = settings(group) if settings.has_key?(key) if value.is_a?(Array) && settings[key].is_a?(Array) value = value | settings[key] else value = settings[key] end break end end end end return filter(value, format) end |
#server(name, key = nil, default = {}, format = false) ⇒ Object
191 192 193 |
# File 'lib/coral_cloud/base.rb', line 191 def server(name, key = nil, default = {}, format = false) return get_group('servers', name, key, default, format) end |
#servers(reset = false) ⇒ Object
168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/coral_cloud/base.rb', line 168 def servers(reset = false) if reset || @servers.empty? @servers = {} get('servers', {}, :hash).each do |name, server_info| server_info = Coral::Util::Data.merge([ { :cloud => self, :machine => name, }, symbol_map(server_info) ]) @servers[name] = Coral::Cloud::Server.new(server_info) end end return @servers end |
#set_repositories(values = {}) ⇒ Object
67 68 69 |
# File 'lib/coral_cloud/base.rb', line 67 def set_repositories(values = {}) return set('repositories', values) end |
#set_repository(local_repo, remote_repo) ⇒ Object
79 80 81 |
# File 'lib/coral_cloud/base.rb', line 79 def set_repository(local_repo, remote_repo) return set_group('repositories', local_repo, nil, remote_repo) end |
#set_server(name, key = nil, value = {}) ⇒ Object
197 198 199 |
# File 'lib/coral_cloud/base.rb', line 197 def set_server(name, key = nil, value = {}) return set_group('servers', name, key, value) end |
#set_servers(values = {}) ⇒ Object
185 186 187 |
# File 'lib/coral_cloud/base.rb', line 185 def set_servers(values = {}) return set('servers', values) end |
#set_setting(group, key, value = '') ⇒ Object
115 116 117 |
# File 'lib/coral_cloud/base.rb', line 115 def set_setting(group, key, value = '') return set_group('settings', group, key, value) end |
#set_settings(group, values = {}) ⇒ Object
97 98 99 |
# File 'lib/coral_cloud/base.rb', line 97 def set_settings(group, values = {}) return set_group('settings', group, nil, values) end |
#set_share(name, key = nil, value = {}) ⇒ Object
156 157 158 |
# File 'lib/coral_cloud/base.rb', line 156 def set_share(name, key = nil, value = {}) return set_group('shares', name, key, value) end |
#set_shares(values = {}) ⇒ Object
144 145 146 |
# File 'lib/coral_cloud/base.rb', line 144 def set_shares(values = {}) return set('shares', values) end |
#setting(group, key, default = '', format = false) ⇒ Object
109 110 111 |
# File 'lib/coral_cloud/base.rb', line 109 def setting(group, key, default = '', format = false) return get_group('settings', group, key, default, format) end |
#settings(group) ⇒ Object
91 92 93 |
# File 'lib/coral_cloud/base.rb', line 91 def settings(group) return get_group('settings', group, nil, {}, :hash) end |
#share(name, key = nil, default = {}, format = false) ⇒ Object
150 151 152 |
# File 'lib/coral_cloud/base.rb', line 150 def share(name, key = nil, default = {}, format = false) return get_group('shares', name, key, default, format) end |
#shares(reset = false) ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/coral_cloud/base.rb', line 127 def shares(reset = false) if reset || @shares.empty? @shares = {} get('shares', {}, :hash).each do |name, share_info| share_info = Coral::Util::Data.merge([ { :name => name, :directory => File.join(@directory, share_info['local_dir']), }, symbol_map(share_info) ]) @shares[name] = Coral::Cloud::Share.new(share_info) end end return @shares end |