Class: RnStack::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/rn_stack/router.rb

Class Method Summary collapse

Class Method Details

.register_api_routes(mapper) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/rn_stack/router.rb', line 20

def self.register_api_routes(mapper)
  Dir.glob(File.join(Rails.root, "app/api/**/*.rb")).each do |file|
    relative_path = file.sub(File.join(Rails.root, "app/api/"), "").sub(".rb", "")
    # Convert [param] to :param for Rails routing
    route_path = relative_path.gsub(/\[([^\]]+)\]/, ':\1')
    route_path = "/api/#{route_path}".gsub(/\/+/, '/')
    
    mapper.match route_path, to: "rn_stack/api#handle", via: [:get, :post, :put, :patch, :delete], defaults: { api_path: relative_path }
  end
end

.register_page_routes(mapper) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rn_stack/router.rb', line 8

def self.register_page_routes(mapper)
  Dir.glob(File.join(Rails.root, "app/pages/**/*.html.erb")).each do |file|
    relative_path = file.sub(File.join(Rails.root, "app/pages/"), "").sub(".html.erb", "")
    # Convert [param] to :param for Rails routing
    route_path = relative_path.gsub(/\[([^\]]+)\]/, ':\1')
    route_path = "/#{route_path.gsub('index', '')}".gsub(/\/+/, '/')
    route_path = "/" if route_path == "/index" || route_path == "//"
    
    mapper.get route_path, to: "rn_stack/pages#show", defaults: { page_path: relative_path }
  end
end

.register_routes(mapper) ⇒ Object



3
4
5
6
# File 'lib/rn_stack/router.rb', line 3

def self.register_routes(mapper)
  register_page_routes(mapper)
  register_api_routes(mapper)
end