Module: Hanami::Helpers::RoutingHelper

Defined in:
lib/hanami/helpers/routing_helper.rb

Overview

Routing helper for full stack Hanami web applications.

For a given application called Web::Application, at runtime Hanami creates a routes factory called Web.routes.

By including this module in a view, it makes that factory avaliable as routes.

Examples:

Basic usage in template

require 'hanami'

module Web::Views::Home
  class Index
    include Web::View
  end
end

# ERB template
# <%= routes.home_path %>

Basic usage in view

require 'hanami'

module Web::Views::Home
  class Index
    include Web::View

    def link_to_home
      %(<a href="#{ routes.home_path }">Home</a>)
    end
  end
end

# ERB template
# <%= link_to_home %>

Since:

  • 0.1.0

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.1.0



45
46
47
48
49
50
51
52
53
# File 'lib/hanami/helpers/routing_helper.rb', line 45

def self.included(base)
  factory = "#{Utils::String.namespace(base)}.routes"

  base.class_eval <<-END_EVAL, __FILE__, __LINE__ + 1
    def routes
      #{factory}
    end
  END_EVAL
end