Sha256: 0694b82f237bad6a4c35b4d22faf7bfa73c34b2f9c92b6c5c45318be19523c49

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 KB

Contents

# coding: utf-8

module UzuUzu
  module Helper
    module Route
      def url_for_controller(controller, *args)
        route_string = request.env['SCRIPT_NAME'].clone
        application.controllers.each do |root_controller|
          re = Regexp.compile("^#{root_controller.name}::")
          if re =~ controller.name
            path = controller.name.gsub(re, '').gsub(/Controller$/, '').to_const_path
            route_string << "/#{path}" unless path == 'index'
            break
          end
        end
        if args[-1].kind_of?(Hash)
          query = query_string(args.pop)
        end
        args.each do |arg|
          route_string << "/#{arg}"
        end
        
        route_string << '/' if args.blank?
        route_string << query unless query.blank?
        route_string
      end
      alias :rf :url_for_controller
      
      def url_for(*args)
        route_string = route.clone
        if args[-1].kind_of?(Hash)
          query = query_string(args.pop)
        end
        args.each do |arg|
          route_string << "/#{arg}"
        end
        route_string << '/' if args.blank?
        route_string << query unless query.blank?
        route_string
      end
      alias :r :url_for
      
      def root_uri
        abs_uri = "#{request.scheme}://#{request.host}"
        if request.scheme == 'https' && request.port != 443 ||
        request.scheme == 'http' && request.port != 80
          abs_uri << ":#{request.port}"
        end
        abs_uri
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
uzuuzu-core-0.0.10 lib/uzuuzu/helper/route.rb
uzuuzu-core-0.0.9 lib/uzuuzu/helper/route.rb
uzuuzu-core-0.0.8 lib/uzuuzu/helper/route.rb