Sha256: aa1137ee7a3374c8c5308f5964e5d7050973bd07dc39de1242d0ad21140cd00f
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
# typed: true class RoutesRbiFormatter def initialize @buffer = [] end def section_title(title) @buffer << "\n# Section #{title}" end def section(routes) @buffer << draw_section(routes) end def header(routes) end def no_routes(routes=nil, filter=nil) @buffer << <<~MESSAGE # You do not have any routes defined! # Please add some routes in config/routes.rb. # For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html. MESSAGE end def result <<~MESSAGE # This is an autogenerated file for routes helper methods # typed: strong class ActionController::Base extend T::Sig #{@buffer.join("\n").indent(2)} end MESSAGE end private def draw_section(routes) routes.map do |r| if r[:name].present? <<~MESSAGE # Sigs for route #{r[:path]} sig { params(args: T.untyped, kwargs: T.untyped).returns(String) } def #{r[:name]}_path(*args, **kwargs); end sig { params(args: T.untyped, kwargs: T.untyped).returns(String) } def #{r[:name]}_url(*args, **kwargs); end MESSAGE else nil end end.compact end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sorbet-rails-0.4.0 | lib/sorbet-rails/routes_rbi_formatter.rb |
sorbet-rails-0.3.0 | lib/sorbet-rails/routes_rbi_formatter.rb |