module Jamnagar module Refineries class ContentRefinery def initialize(options={}) @items = options[:items] || [] @refiners = options[:refiners] || [] @verifiers = options[:verifiers] || [] @storage = options[:storage] || Storage::ItemStore.new @logger = options[:logger] || Jamnagar::Utilities::SilentLogger.new @runner = options[:runner] || Jamnagar::Utilities::Runner.new end def refine @items.each_with_index do |item, index| begin @runner.run do @storage.insert(verify(enrich(convert(item)))) end rescue Jamnagar::Adapters::InsertError @logger.error("Insert Error: _id => #{item['_id']}") end end end private def enrich(item) @refiners.each do |refiner| item = refiner.refine(item) end item end def verify(item) @verifiers.each do |verifier| item = verifier.verify(item) end item end def convert(item) return Jamnagar::Materials::Item.new(item) if item.is_a?(Hash) item end end end end