class Hanami::Routing::Resource::Nested

Helper class to calculate nested path

@api private @since 0.4.0

Constants

SEPARATOR

@api private @since 0.4.0

Public Class Methods

new(resource_name, resource) click to toggle source

@api private @since 0.4.0

# File lib/hanami/routing/resource/nested.rb, line 15
def initialize(resource_name, resource)
  @resource_name = resource_name.to_s.split(SEPARATOR)
  @resource      = resource
  @path          = []
  _calculate(@resource_name.dup, @resource)
end

Public Instance Methods

to_path() click to toggle source

@api private @since 0.4.0

# File lib/hanami/routing/resource/nested.rb, line 24
def to_path
  @path.reverse!.pop
  @resource_name.zip(@path).flatten.join
end

Private Instance Methods

_calculate(param_wildcard, resource = nil) click to toggle source

@api private @since 0.4.0

# File lib/hanami/routing/resource/nested.rb, line 33
def _calculate(param_wildcard, resource = nil)
  return if resource.nil?
  @path << resource.wildcard_param(param_wildcard.pop)
  _calculate(param_wildcard, resource.parent)
end