Sha256: e7941b244551c7f830f26460e5a08dde57c7ad52bfe28724d8b5c26a26ad796b
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 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, filter=nil) puts routes @buffer << if routes.none? <<~MESSAGE # You do not have any routes defined! # Please add some routes in config/routes.rb. MESSAGE elsif filter && filter.key?(:controller) "# No routes were found for this controller." elsif filter && filter.key?(:grep) "# No routes were found for this grep pattern." end @buffer << "# For more information about routes, see the Rails guide: https://guides.rubyonrails.org/routing.html." 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sorbet-rails-0.2.0 | lib/sorbet-rails/routes_rbi_formatter.rb |