lib/comma/extractors.rb in crafterm-comma-0.1.7 vs lib/comma/extractors.rb in crafterm-comma-0.1.8

- old
+ new

@@ -1,26 +1,30 @@ module Comma - + class Extractor def initialize(instance, &block) @instance = instance @block = block @results = [] end - + def results instance_eval &@block @results end + + def id + method_missing(:id) + end end - + class HeaderExtractor < Extractor - + def method_missing(sym, *args, &block) @results << sym.to_s.humanize if args.blank? - + args.each do |arg| case arg when Hash arg.each do |k, v| @results << ((v.is_a? String) ? v : v.to_s.humanize) @@ -33,23 +37,23 @@ raise "Unknown header symbol #{arg.inspect}" end end end end - + class DataExtractor < Extractor - + def method_missing(sym, *args, &block) @results << @instance.send(sym).to_s if args.blank? - + args.each do |arg| case arg when Hash arg.each do |k, v| - @results << @instance.send(sym).send(k).to_s + @results << (@instance.send(sym).nil? ? '' : @instance.send(sym).send(k).to_s ) end when Symbol - @results << @instance.send(sym).send(arg).to_s + @results << ( @instance.send(sym).nil? ? '' : @instance.send(sym).send(arg).to_s ) when String @results << @instance.send(sym).to_s else raise "Unknown data symbol #{arg.inspect}" end