Sha256: a70670a5a380deb13d2724206aace0ddd96ccf3e55d12e33701ce73878cd776a

Contents?: true

Size: 873 Bytes

Versions: 1

Compression:

Stored size: 873 Bytes

Contents

require 'json'

module Gon
  module Sinatra
    module Helpers
      def include_gon(options = {})
        unless gon.all_variables.empty?
          data = gon.all_variables
          namespace = options[:namespace] || 'gon'
          script = "<script>window." + namespace + " = {};"
          unless options[:camel_case]
            data.each do |key, val|
              script += namespace + "." + key.to_s + '=' + val.to_json + ";"
            end
          else
            data.each do |key, val|
              script += namespace + "." + key.to_s.camelize(:lower) + '=' + val.to_json + ";"
            end
          end
          script += "</script>"
          script
        else
          ""
        end
      end
    end

    module GonHelpers
      def gon
        env["gon"] ||= Gon::Sinatra::Store.new({})
        @gon = env["gon"]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gon-sinatra-0.1.0 lib/gon/sinatra/helpers.rb