lib/heirloom/archive/reader.rb in heirloom-0.3.1 vs lib/heirloom/archive/reader.rb in heirloom-0.4.0

- old
+ new

@@ -1,24 +1,23 @@ module Heirloom class Reader - attr_accessor :config, :id, :name - def initialize(args) - self.config = args[:config] - self.name = args[:name] - self.id = args[:id] - @logger = config.logger + @config = args[:config] + @name = args[:name] + @domain = "heirloom_#{@name}" + @id = args[:id] + @logger = @config.logger end def exists? - if show.any? - @logger.debug "Found entry for #{id} in SimpleDB." + if domain_exists? && show.any? + @logger.debug "Found entry for #{@id} in SimpleDB." true else - @logger.debug "Entry for #{id} not found in SimpleDB." + @logger.debug "Entry for #{@id} not found in SimpleDB." false end end def regions @@ -27,11 +26,11 @@ end data.compact end def get_bucket(args) - @logger.debug "Looking for bucket in #{args[:region]} for #{id}" + @logger.debug "Looking for bucket in #{args[:region]} for #{@id}" url = get_url(args) if url bucket = url.gsub('s3://', '').split('/').first @logger.debug "Found bucket #{bucket}." bucket @@ -51,30 +50,38 @@ else nil end end + def count + sdb.count @domain + end + def show - query = sdb.select "select * from #{name} where itemName() = '#{id}'" - items = query[id] ? query[id] : {} + query = sdb.select "select * from #{@domain} where itemName() = '#{@id}'" + items = query[@id] ? query[@id] : {} Hash.new.tap do |hash| items.each_pair.map do |key,value| hash[key] = value.first end end end private + def domain_exists? + sdb.domain_exists? @domain + end + def get_url(args) return nil unless exists? - @logger.debug "Looking for #{args[:region]} endpoint for #{id}" + @logger.debug "Looking for #{args[:region]} endpoint for #{@id}" url = "#{args[:region]}-s3-url" if show[url] - @logger.debug "Found #{url} for #{id}." + @logger.debug "Found #{url} for #{@id}." show[url] else - @logger.debug "#{args[:region]} endpoint for #{id} not found." + @logger.debug "#{args[:region]} endpoint for #{@id} not found." nil end end def sdb