class RailsTemplatedUrls::Builder
Public Class Methods
new(name, params, url_helpers, routes)
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 8 def initialize(name, params, url_helpers, routes) @name = name @params = params @url_helpers = url_helpers @routes = routes check_route end
Public Instance Methods
path()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 23 def path build(:path) end
url()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 19 def url build(:url) end
Protected Instance Methods
build(strategy)
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 49 def build(strategy) url = @url_helpers.public_send("#{@name}_#{strategy}", *required_parts_expressions) "#{CGI.unescape(url)}#{params_expression}" end
check_route()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 29 def check_route return if named_routes.key?(@name) fail UnknownRouteError, "Unknown route #{@name.inspect}" end
params_expression()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 44 def params_expression return if @params.empty? format('{?%s}', @params.join(',')) end
required_parts()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 34 def required_parts named_routes[@name].required_parts end
required_parts_expressions()
click to toggle source
# File lib/rails_templated_urls/builder.rb, line 38 def required_parts_expressions required_parts.map do |key| { key => format('{%s}', key) } end end