Class: Kabutops::Adapters::DatabaseAdapter
Instance Attribute Summary collapse
Instance Method Summary
collapse
#callbacks, #manager, #notify
#append_features, #included
#logger
Methods inherited from Base
#debug, #enable_debug, #initialize
Instance Attribute Details
#recipe ⇒ Object
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(params = {}, &block) ⇒ Object
15
16
17
18
|
# File 'lib/kabutops/adapters/database_adapter.rb', line 15
def data params={}, &block
@recipe = Recipe.new(params)
@recipe.instance_eval &block
end
|
#find(resource) ⇒ Object
46
47
48
|
# File 'lib/kabutops/adapters/database_adapter.rb', line 46
def find resource
raise NotImplementedError
end
|
#process(resource, page) ⇒ Object
20
21
22
23
24
25
26
27
28
|
# File 'lib/kabutops/adapters/database_adapter.rb', line 20
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
|
#process_one(resource, page, result) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/kabutops/adapters/database_adapter.rb', line 30
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
result
end
|
#store(result) ⇒ Object
42
43
44
|
# File 'lib/kabutops/adapters/database_adapter.rb', line 42
def store result
raise NotImplementedError
end
|