Sha256: c737c3cdb0b0f8d9da148fa008d8fbcbb6962c1b63f4558b3d7bb17c1fc3b31a

Contents?: true

Size: 789 Bytes

Versions: 2

Compression:

Stored size: 789 Bytes

Contents

class CbuilderTemplate < Cbuilder
  def initialize(context, *args)
    @context = context
    super(*args)
  end

  def partial!(options, locals = {})
    case options
    when Hash
      options[:locals] ||= {}
      options[:locals].merge!(:csv => self)
      @context.render(options.reverse_merge(:formats => [:csv]))
    else
      @context.render(:partial => options, :locals => locals.merge(:csv => self), :formats => [:csv])
    end
  end
end

class CbuilderHandler
  cattr_accessor :default_format
  self.default_format = Mime::CSV

  def self.call(template)
    %{__already_defined = defined?(csv); csv||=CbuilderTemplate.new(self); #{template.source}
      csv.target! unless __already_defined}
  end
end

ActionView::Template.register_template_handler :cbuilder, CbuilderHandler

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cbuilder-0.0.2 lib/cbuilder_template.rb
cbuilder-0.0.1 lib/cbuilder_template.rb