Sha256: d202c2f7f7014524f2c4d74f5e5a806a8806b82acae32361f9b35f4c27fad176

Contents?: true

Size: 1.01 KB

Versions: 24

Compression:

Stored size: 1.01 KB

Contents

require 'orange-core/core'

module Orange
  class Mapper < Resource
    # Takes a packet extracts request information, then calls packet.route
    def afterLoad
      orange.add_pulp Pulp::Packet_Mapper
    end
    
    def route_to(packet, resource, *args)
      opts = args.extract_options!
      packet = DefaultHash.new unless packet 
      context = opts[:context]
      context = packet['route.context', nil] unless (context || (packet['route.context'] == :live))
      site = packet['route.faked_site'] ? packet['route.site_url', nil] : nil
      args.unshift(resource)
      args.unshift(context)
      args.unshift(site)
      '/'+args.compact.join('/')
    end
  end
  
  module Pulp::Packet_Mapper
    def route_to(resource, *args)
      orange[:mapper].route_to(self, resource, *args)
    end
    
    def reroute(url, type = :real, *args)
      packet['reroute.to'] = url
      packet['reroute.type'] = type
      packet['reroute.args'] = *args if args
      raise Reroute.new(self), 'Unhandled reroute'
    end
  end
  
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
orange-core-0.6.0 lib/orange-core/resources/mapper.rb
orange-core-0.5.9 lib/orange-core/resources/mapper.rb
orange-core-0.5.8 lib/orange-core/resources/mapper.rb
orange-core-0.5.5 lib/orange-core/resources/mapper.rb
orange-core-0.5.3 lib/orange-core/resources/mapper.rb
orange-0.5.5 lib/orange-core/resources/mapper.rb
orange-0.5.4 lib/orange-core/resources/mapper.rb
orange-0.5.3 lib/orange-core/resources/mapper.rb
orange-0.5.2 lib/orange-core/resources/mapper.rb
orange-0.5.1 lib/orange-core/resources/mapper.rb
orange-0.4.0 lib/orange-core/resources/mapper.rb
orange-0.3.9 lib/orange-core/resources/mapper.rb
orange-0.3.8 lib/orange-core/resources/mapper.rb
orange-0.3.7 lib/orange-core/resources/mapper.rb
orange-0.3.6 lib/orange-core/resources/mapper.rb
orange-0.3.5 lib/orange-core/resources/mapper.rb
orange-0.3.4 lib/orange-core/resources/mapper.rb
orange-0.3.3 lib/orange-core/resources/mapper.rb
orange-0.3.2 lib/orange-core/resources/mapper.rb
orange-0.3.1 lib/orange-core/resources/mapper.rb