# coding: utf-8 module UzuUzu module Helper module Route module RouteClass def url_for(*args) app = UzuUzu.current route_string = UzuUzu::Request.current.env['SCRIPT_NAME'] app.controllers.each do |controller| re = Regexp.compile("^#{controller.name}::") if re =~ self.name path = self.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 :r :url_for # # # def query_string(query_options={}) query_string = [] query_options do |key, value| query_string << "#{key}=#{value}" end return "" if query_string.blank? "?#{query_string.join('&')}" end end def self.included(clazz) clazz.extend RouteClass end 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 end end end