60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/kazoo/app.rb', line 60
def url(name = '', opts = {})
if name.is_a?(Symbol)
raise ArgumentError, "Invalid url name: #{name}" unless krouter.named_routes[name]
url_path = krouter.named_routes[name].to_s.split('/').map { |part|
next unless part.is_a?(String)
if matches = part.match(/^:([a-z_]+)$/i)
matched = matches[1].downcase
opts[matched] || opts[matched.to_sym] || params[matched] || raise("You need to pass '#{matched}' to generate URL")
else
part
end
}.join('/')
full_path = kenv['path_prefix'] ? File.join(kenv['path_prefix'], url_path) : url_path
format = opts[:format] || opts['format']
full_path << ".#{format}" if format
full_path
else
kenv['HTTP_PREFIX'] ? File.join(kenv['HTTP_PREFIX'], name) : name
end
end
|