Sha256: f3671aeebf497cb585221390fc456182a8448e7def58902c1a78fd7e236dd8fe
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
# typed: true # frozen_string_literal: true require_relative 'router' module Radical class Routes class << self extend T::Sig sig { returns(Router) } def router @router ||= Router.new end sig { params(name: T.any(String, Symbol)).void } def root(name) klass = Object.const_get(name) router.add_root(klass) end sig { params(names: T.any(String, Symbol)).void } def resource(*names) classes = names.map { |c| Object.const_get(c) } classes.each do |klass| router.add_actions(klass, actions: Router::RESOURCE_ACTIONS) end end sig { params(names: T.any(String, Symbol), block: T.nilable(T.proc.void)).void } def resources(*names, &block) classes = names.map { |c| Object.const_get(c) } prefix = "#{router.route_prefix(@parents)}/" if instance_variable_defined?(:@parents) router.add_routes(classes, prefix: prefix) return unless block @parents ||= [] @parents << classes.last block.call end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
radical-1.1.0 | lib/radical/routes.rb |