Sha256: 8511baf827a63500bac548dca263387b7d884e79598329055e610ba60c3d70f0
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 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 previous = find(resource) [recipe.process(resource, page, previous)].flatten.each do |result| process_one(resource, page, result) end end def process_one resource, page, result result.update(updated_at: Time.now.to_i) save = (notify(:save_if, resource, page, result) || []).all? logger.info("#{self.class.to_s} outputs:") if debug notify(:before_save, result) if save logger.info(save ? result.to_hash : 'not valid for save') if debug store(result) if save && !debug notify(:after_save, result) if save end def store result raise NotImplementedError end def find resource raise NotImplementedError end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kabutops-0.2.0 | lib/kabutops/adapters/database_adapter.rb |