Sha256: a50533ad74a0e17ba058042330f80895816bbb56fb0be03565a394f652d0204b
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module Kabutops class Recipe def initialize @items = {} @nested = false end def method_missing name, *args, &block if block_given? recipe = Recipe.new recipe.instance_eval &block @items[name] = RecipeItem.new(name, :recipe, recipe) @nested = true else type, value = args[0..1] @items[name] = RecipeItem.new(name, type, value) end end def process resource, page result = {} @items.each do |name, item| result[name] = case item.type when :var resource[item.value] when :recipe item.value.process(resource, page) when :css page.css(item.value).text when :xpath page.xpath(item.value).text when :lambda item.value.call(page) when :proc page.instance_eval &item.value else raise "unknown recipe item type '#{item.type}'" end end result end def nested? @nested end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kabutops-0.0.1 | lib/kabutops/recipe.rb |