Class: Kabutops::Adapters::DatabaseAdapter

Inherits:
Base
  • Object
show all
Includes:
Extensions::CallbackSupport, Extensions::Logging
Defined in:
lib/kabutops/adapters/database_adapter.rb

Direct Known Subclasses

ElasticSearch, Mongo, Redis, Sequel

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Extensions::CallbackSupport

#callbacks, #notify

Methods included from Extensions::Includable

#append_features, #included

Methods included from Extensions::Logging

#logger

Methods inherited from Base

#debug, #enable_debug, #initialize

Constructor Details

This class inherits a constructor from Kabutops::Adapters::Base

Instance Attribute Details

#recipeObject (readonly)

Returns the value of attribute recipe.



11
12
13
# File 'lib/kabutops/adapters/database_adapter.rb', line 11

def recipe
  @recipe
end

Instance Method Details

#data(&block) ⇒ Object



15
16
17
18
# File 'lib/kabutops/adapters/database_adapter.rb', line 15

def data &block
  @recipe = Recipe.new
  @recipe.instance_eval &block
end

#nested?Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/kabutops/adapters/database_adapter.rb', line 37

def nested?
  raise NotImplementedError
end

#process(resource, page) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/kabutops/adapters/database_adapter.rb', line 20

def process resource, page
  raise 'data block not defined' unless @recipe

  result = @recipe.process(resource, page)
  if debug
    logger.info("#{self.class.to_s} outputs:")
    logger.info(result.to_hash)
  else
    store(result)
    notify(:after_save, result)
  end
end

#store(result) ⇒ Object

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/kabutops/adapters/database_adapter.rb', line 33

def store result
  raise NotImplementedError
end