Class: Kabutops::Recipe
- Inherits:
-
Object
show all
- Defined in:
- lib/kabutops/recipe.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(params = {}) ⇒ Recipe
Returns a new instance of Recipe.
8
9
10
11
12
|
# File 'lib/kabutops/recipe.rb', line 8
def initialize params={}
@params = Hashie::Mash.new(params)
@items = Hashie::Mash.new
@nested = false
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/kabutops/recipe.rb', line 14
def method_missing name, *args, &block
if block_given?
recipe = Recipe.new
recipe.instance_eval &block
@items[name] = RecipeItem.new(:recipe, recipe)
@nested = true
else
type, value, convert_to = args[0..2]
@items[name] = RecipeItem.new(type, value, convert_to)
end
end
|
Instance Attribute Details
#items ⇒ Object
Returns the value of attribute items.
6
7
8
|
# File 'lib/kabutops/recipe.rb', line 6
def items
@items
end
|
Instance Method Details
#nested? ⇒ Boolean
46
47
48
|
# File 'lib/kabutops/recipe.rb', line 46
def nested?
@nested
end
|
#process(resource, page) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/kabutops/recipe.rb', line 26
def process resource, page
if @params[:each]
page.xpath(@params[:each]).map{ |n| process_one(resource, n) }
elsif @params[:each_css]
page.css(@params[:each_css]).map{ |n| process_one(resource, n) }
else
process_one(resource, page)
end
end
|
#process_one(resource, node) ⇒ Object
36
37
38
39
40
41
42
43
44
|
# File 'lib/kabutops/recipe.rb', line 36
def process_one resource, node
result = Hashie::Mash.new
@items.each do |name, item|
result[name] = item.process(resource, node)
end
result
end
|