Sha256: f151167c76ed57eaf7bf53c2f031f89002e35419659b33bbd2740df39ff03da2

Contents?: true

Size: 636 Bytes

Versions: 16

Compression:

Stored size: 636 Bytes

Contents

module RbsRails
  class PathHelpers
    def self.generate(routes: Rails.application.routes)
      new(routes: Rails.application.routes).generate
    end

    def initialize(routes:)
      @routes = routes
    end

    def generate
      methods = helpers.map do |helper|
        # TODO: More restrict argument types
        "def #{helper}: (*untyped) -> String"
      end

      <<~RBS
        interface _RbsRailsPathHelpers
        #{methods.join("\n").indent(2)}
        end
      RBS
    end

    private def helpers
      routes.named_routes.helper_names
    end

    private
    # @dynamic routes
    attr_reader :routes
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rbs_rails-0.12.1 lib/rbs_rails/path_helpers.rb
rbs_rails-0.12.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.11.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.10.1 lib/rbs_rails/path_helpers.rb
rbs_rails-0.10.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.9.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.8.2 lib/rbs_rails/path_helpers.rb
rbs_rails-0.8.1 lib/rbs_rails/path_helpers.rb
rbs_rails-0.8.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.7.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.6.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.5.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.4.1 lib/rbs_rails/path_helpers.rb
rbs_rails-0.4.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.3.0 lib/rbs_rails/path_helpers.rb
rbs_rails-0.2.0 lib/rbs_rails/path_helpers.rb