class DbSucker::Application::ContainerCollection
Constants
- DuplicateIdentifierError
- YAMLParseError
Attributes
app[R]
data[R]
Public Class Methods
new(app)
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 9 def initialize app @app = app @data = {} end
Public Instance Methods
each(&block)
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 42 def each &block @data.each(&block) end
get(id)
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 38 def get id @data[id] end
load_all_configs()
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 22 def load_all_configs yml_configs.each{|f| load_yml_config(f) } end
load_yml_config(file)
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 26 def load_yml_config file YAML.load_file(file).each do |id, cfg| if @data.key?(id) raise DuplicateIdentifierError, "double use of identifier `#{id}' in `#{file}'" else @data[id] = Container.new(app, id, file, cfg) end end rescue Psych::SyntaxError => ex app.abort ex.message end
yml_configs(disabled = false)
click to toggle source
# File lib/db_sucker/application/container_collection.rb, line 14 def yml_configs disabled = false files = Dir["#{app.core_cfg_path}/**/*.yml"].select{|f| File.file?(f) } return files if disabled files.reject do |f| f.gsub("#{app.core_cfg_path}/", "").split("/").any?{|fp| fp.start_with?("__") } end end