class JSRailsRoutes::Language::JavaScript
Constants
- PROCESS_FUNC
Public Instance Methods
ext()
click to toggle source
@note Implementation for {JSRailsRoutes::Language::Base#ext}
# File lib/js_rails_routes/language/javascript.rb, line 44 def ext 'js' end
handle_route(route)
click to toggle source
@param route [JSRailsRoutes::Route] @return [String]
# File lib/js_rails_routes/language/javascript.rb, line 37 def handle_route(route) path, keys = parse(route.path) name = function_name(route.name) "export function #{name}(params) { return process('#{path}', params, [#{keys.join(',')}]); }" end
handle_route_set(routes)
click to toggle source
@note Implementation for {JSRailsRoutes::Language::Base#generate}
# File lib/js_rails_routes/language/javascript.rb, line 28 def handle_route_set(routes) set = routes.each_with_object([self.class::PROCESS_FUNC]) do |route, lines| lines.push(handle_route(route)) end.join("\n") "#{set}\n" end
Private Instance Methods
camelize(name)
click to toggle source
@param name [String] @return [String]
# File lib/js_rails_routes/language/javascript.rb, line 72 def camelize(name) config.camelize ? name.camelize(config.camelize) : name end
config()
click to toggle source
@return [JSRailsRoutes::Configuration]
# File lib/js_rails_routes/language/javascript.rb, line 77 def config JSRailsRoutes.config end
function_name(route_name)
click to toggle source
@param route_name [String] @return [String]
# File lib/js_rails_routes/language/javascript.rb, line 65 def function_name(route_name) url_helper_name = "#{route_name}_path" config.camelize.nil? ? url_helper_name : url_helper_name.camelize(config.camelize) end
parse(route_path)
click to toggle source
@param route_path [String] @return [Array<(String, Array<String>)>]
# File lib/js_rails_routes/language/javascript.rb, line 52 def parse(route_path) destructured_path = route_path.dup keys = [] while destructured_path =~ JSRailsRoutes::PARAM_REGEXP key = camelize(Regexp.last_match(1)) keys.push("'#{key}'") destructured_path.sub!(JSRailsRoutes::PARAM_REGEXP, "' + params.#{key} + '#{Regexp.last_match(2)}") end [destructured_path, keys] end