class S3Master::Config

Public Class Methods

new(cfg_file) click to toggle source
# File lib/s3_master/config.rb, line 10
def initialize(cfg_file)
  @cfg = ActiveSupport::HashWithIndifferentAccess.new(YAML.load_file(cfg_file))
end

Public Instance Methods

each(&block) click to toggle source
# File lib/s3_master/config.rb, line 35
def each(&block)
  @cfg[:buckets].each_pair do |bucket, policy_types|
    policy_types.each_pair do |policy_type, subpolicy|
      next if ! S3Master::RemotePolicy.known_policy_type?(policy_type)
      (policy_ids(bucket, policy_type) || [nil]).each do |policy_id|
        block.call(bucket, policy_type, policy_id)
      end
    end
  end
end
has_subpolicies?(bucket, policy_type) click to toggle source
# File lib/s3_master/config.rb, line 16
def has_subpolicies?(bucket, policy_type)
  @cfg[:buckets][bucket.to_s][policy_type.to_s].kind_of?(Hash)
end
policy_ids(bucket, policy_type) click to toggle source
# File lib/s3_master/config.rb, line 29
def policy_ids(bucket, policy_type)
  subpolicy = @cfg[:buckets][bucket][policy_type]
  policy_ids = subpolicy.kind_of?(Hash) ? subpolicy.keys : nil
  policy_ids
end
region(bucket) click to toggle source
# File lib/s3_master/config.rb, line 14
def region(bucket) @cfg[:buckets][bucket.to_s]["region"] ; end
template_relname(bucket, policy_type, policy_id=nil) click to toggle source
# File lib/s3_master/config.rb, line 20
def template_relname(bucket, policy_type, policy_id=nil)
  if self.has_subpolicies?(bucket, policy_type)
    raise(RuntimeError, "Bucket #{bucket} policy #{policy_type} has subpolicies so an id is required") if policy_id.nil?
    @cfg[:buckets][bucket][policy_type][policy_id]
  else
    @cfg[:buckets][bucket][policy_type]
  end
end