class RoutesJS::Routes
Attributes
default_format[RW]
filter_type[RW]
named_routes[RW]
Public Class Methods
as_json(routes = nil)
click to toggle source
# File lib/routesjs/routes.rb, line 14 def as_json(routes = nil) routes ||= ::Rails.application.routes.named_routes.routes js_routes = build_routes(routes) results = { routes: js_routes } results[:format] = default_format unless default_format.blank? results.as_json end
init(options = {})
click to toggle source
# File lib/routesjs/routes.rb, line 6 def init(options = {}) reset set_format_from_options(options) make_filter(options, :except) if options.has_key?(:except) make_filter(options, :only) if options.has_key?(:only) end
Private Class Methods
build_routes(routes)
click to toggle source
# File lib/routesjs/routes.rb, line 40 def build_routes(routes) route_map = routes.values.inject({}) do |result, route| if include_route?(route) derived_route = RoutesJS::Routing::Route.new(route) result[derived_route.name] = derived_route.url end result end end
include_route?(route)
click to toggle source
# File lib/routesjs/routes.rb, line 51 def include_route?(route) return true unless named_routes.present? && named_routes.any? found = named_routes.include?(route.name) filter_type == :only ? found : !found end
make_filter(options, type)
click to toggle source
# File lib/routesjs/routes.rb, line 35 def make_filter(options, type) self.filter_type = type self.named_routes = Array(options[type]).map(&:to_s) end
reset()
click to toggle source
# File lib/routesjs/routes.rb, line 25 def reset self.default_format = nil self.named_routes = nil self.filter_type = nil end
set_format_from_options(options)
click to toggle source
# File lib/routesjs/routes.rb, line 31 def set_format_from_options(options) self.default_format = options[:default_format] end