Sha256: ca0145a7866bebbafd95317505b49e58c96fd3e13a513c1c1d1fdc1cd4b5f07f

Contents?: true

Size: 703 Bytes

Versions: 4

Compression:

Stored size: 703 Bytes

Contents

module Tableview
  class TV 
    def call(template)
      source = template.source
      start, ending = /^\s*/, /\s+(.+?)(?= unless| if| do|\{|#|$)/
      source.gsub!(/#{start}\+#{ending}/, 'table.column(\1)')
      source.gsub!(/#{start}\=>#{ending}/, 'table.table_for(\1)')
      source.gsub!(/#{start}\=#{ending}/, 'table.generate_subtable_for(\1)')
      source.gsub!(/#{start}\*#{ending}/, 'table.config(\1)')
      %{
        format = Tableview::Helper::Format.new(params)
        tv = Tableview::ViewHandler.dsl do |table|
          #{source}
        end
        output = Tableview::output_class(params[:format]).new
        output.process(tv)
        output.to_s
      }
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tableview-0.3.3 lib/tableview/tv.rb
tableview-0.3.2 lib/tableview/tv.rb
tableview-0.3.1 lib/tableview/tv.rb
tableview-0.3.0 lib/tableview/tv.rb