Sha256: fc363ba1ed55e61e9c388932b1ce069eadb3742dab1543153b8ee88cbea84657

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 KB

Contents

require 'action_view'
module ActionView
  module Template::Handlers
    if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR < 1
      class JsonifyBuilder < Template::Handler
        include Compilable

        self.default_format = Mime::JSON

        def compile(template)
          "json = ::Jsonify::Builder.new(:format => :#{jsonify_format});" +
            template.source +
          ";json.compile!;"
        end
        
        private 

        def jsonify_format
          Rails.application.config.respond_to?(:jsonify_format) ? Rails.application.config.jsonify_format : 'plain'
        end

      end
    else
      class JsonifyBuilder
        def default_format
          Mime::JSON
        end
        
        def self.call(template)
          "json = ::Jsonify::Builder.new(:format => :#{jsonify_format});" +
            template.source +
          ";json.compile!;"
        end
        
        private 

        def self.jsonify_format
          Rails.application.config.respond_to?(:jsonify_format) ? Rails.application.config.jsonify_format : 'plain'
        end
        
      end
    end
  end
end

ActionView::Template.register_template_handler :jsonify, ActionView::Template::Handlers::JsonifyBuilder

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jsonify-rails-0.3.2 lib/jsonify-rails/jsonify_builder.rb
jsonify-rails-0.3.1 lib/jsonify-rails/jsonify_builder.rb
jsonify-rails-0.2.0 lib/jsonify-rails/jsonify_builder.rb
jsonify-rails-0.1.2 lib/jsonify-rails/jsonify_builder.rb
jsonify-rails-0.1.0 lib/jsonify-rails/jsonify_builder.rb