Sha256: dc76138138bb027af820506b742a40fe00298fb561a57613f373f409d068aa81
Contents?: true
Size: 1.59 KB
Versions: 16
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true module Hanami class Router # Renders a human friendly representation of the routes # # @api private # @since 2.0.0 module Formatter class HumanFriendly # @api private # @since 2.0.0 NEW_LINE = $/ private_constant :NEW_LINE # @api private # @since 2.0.0 SMALL_STRING_JUSTIFY_AMOUNT = 8 private_constant :SMALL_STRING_JUSTIFY_AMOUNT # @api private # @since 2.0.0 MEDIUM_STRING_JUSTIFY_AMOUNT = 20 private_constant :MEDIUM_STRING_JUSTIFY_AMOUNT # @api private # @since 2.0.0 LARGE_STRING_JUSTIFY_AMOUNT = 30 private_constant :LARGE_STRING_JUSTIFY_AMOUNT # @api private # @since 2.0.0 EXTRA_LARGE_STRING_JUSTIFY_AMOUNT = 40 private_constant :EXTRA_LARGE_STRING_JUSTIFY_AMOUNT # @api private # @since 2.0.0 def call(routes) routes.filter_map(&method(:format_route_unless_head)).join(NEW_LINE) end private def format_route_unless_head(route) !route.head? && [ route.http_method.to_s.ljust(SMALL_STRING_JUSTIFY_AMOUNT), route.path.ljust(LARGE_STRING_JUSTIFY_AMOUNT), route.inspect_to.ljust(LARGE_STRING_JUSTIFY_AMOUNT), route.as? ? "as #{route.inspect_as}".ljust(MEDIUM_STRING_JUSTIFY_AMOUNT) : "", route.constraints? ? "(#{route.inspect_constraints})".ljust(EXTRA_LARGE_STRING_JUSTIFY_AMOUNT) : "" ].join end end end end end
Version data entries
16 entries across 16 versions & 1 rubygems