lib/riif/iif.rb in riif-0.0.1 vs lib/riif/iif.rb in riif-0.1.0

- old
+ new

@@ -20,19 +20,34 @@ require 'riif/dsl/vend' require 'riif/dsl/vtype' module Riif class IIF - def method_missing(method_name, *args, &block) - result = eval("::Riif::DSL::#{method_name.capitalize}").new.build(&block) + def initialize(&block) + @output = { + headers: [], + rows: [] + } + if block_given? + instance_eval(&block) + end + end + def output CSV.generate(col_sep: "\t") do |tsv| - result[:headers].each do |header| + @output[:headers].uniq.each do |header| tsv << header end - result[:rows].each do |row| + @output[:rows].each do |row| tsv << row end end + end + + def method_missing(method_name, *args, &block) + result = eval("::Riif::DSL::#{method_name.capitalize}").new.build(&block) + + @output[:headers].concat(result[:headers]) + @output[:rows].concat(result[:rows]) end end end