class ActionDispatch::Routing::Mapper
Monkey patching for adding in locale urls rubocop:disable Metrics/LineLength
Public Instance Methods
in_locales(locales, &block)
click to toggle source
# File lib/murloc/action_dispatch/routing/mapper.rb, line 6 def in_locales(locales, &block) scope_name = ':locale' scope_args = { locale: /#{locales.join("|")}/ } scope(scope_name, scope_args, &block) match '', to: redirect { |_, request| "#{I18n.locale}#{query_params(request)}" }, via: :all match '*path', to: redirect { |params, request| "#{I18n.locale}#{path_params(params)}#{query_params(request)}" }, constraints: { path: %r{(?!(#{I18n.available_locales.join("|")})\/).*} }, via: :all end
Private Instance Methods
path_params(params)
click to toggle source
# File lib/murloc/action_dispatch/routing/mapper.rb, line 29 def path_params(params) "/#{params[:path] .gsub(/^#{I18n.available_locales.join("|")}/, '') .gsub(%r{^\/}, '')}" end
query_params(request)
click to toggle source
rubocop:enable Metrics/LineLength
# File lib/murloc/action_dispatch/routing/mapper.rb, line 24 def query_params(request) qp = request.query_parameters "?#{qp.to_query}" if qp.present? end