Sha256: e16b01a55c882a0311a99b24a110831f812a2a7f0144a2c8779a54abd9bf40aa
Contents?: true
Size: 1.18 KB
Versions: 6
Compression:
Stored size: 1.18 KB
Contents
# -*- encoding : utf-8 -*- module Kabutops module Adapters class DatabaseAdapter < Base include Extensions::Logging include Extensions::CallbackSupport attr_reader :recipe callbacks :before_save, :after_save, :save_if def data params={}, &block @recipe = Recipe.new(params) @recipe.instance_eval &block end def process resource, page raise 'data block not defined' unless @recipe [@recipe.process(resource, page)].flatten.each do |result| result.update(updated_at: Time.now.to_i) save = (notify(:save_if, resource, page, result) || []).all? if debug logger.info("#{self.class.to_s} outputs:") notify(:before_save, result) if save logger.info(save ? result.to_hash : 'not valid for save') notify(:after_save, result) if save elsif save notify(:before_save, result) store(result) notify(:after_save, result) end end end def store result raise NotImplementedError end def nested? raise NotImplementedError end end end end
Version data entries
6 entries across 6 versions & 1 rubygems