Sha256: d3cae617117d537cb97a5faa2955a163988cff9dbe9a9dc57f4dc6072e9c858f

Contents?: true

Size: 1023 Bytes

Versions: 1

Compression:

Stored size: 1023 Bytes

Contents

require 'net/http'
require 'uri'

module AhcHelper

  def render_ahc(template)
    if params[:format] == 'json'
      render json: @data
    else
      render text: Ahc.render(template, @data)
    end
  end

end

module AhcInheritedResourcesHelper
  include AhcHelper

  def respond_with(*resources, &block)
    controller = params[:controller].split('/').last
    action = params[:action]
    @data ||= {}
    @data['resources'] = collection
    render_ahc("#{controller}/#{action}")
  end

end

class AhcProxy

  def initialize(app)
    @app = app
  end

  def call(env)
    request = Rack::Request.new(env)
    path = request.fullpath
    if path.start_with?('/s/') || path.start_with?('/static/') || path.start_with?('/plovr/')
      begin
        response = Net::HTTP.get(URI.parse("http://#{Ahc.host || Ahc.default_host}:#{Ahc.port || Ahc.default_port}" + path))
        return [200, {}, [response]]
      rescue
        return [200, {}, ['Ahc server is not running']]
      end
    end
    @app.call(env)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ahc-0.3.1 lib/ahc_helper.rb