Sha256: e73721f66ae09aae8f723a9443092df6a2edd2abfed97c7242ab9003f9806269

Contents?: true

Size: 1.29 KB

Versions: 13

Compression:

Stored size: 1.29 KB

Contents

require 'hanami/utils/string'

module Hanami
  module Helpers
    # Routing helper for full stack Hanami web applications.
    #
    # For a given application called <tt>Web::Application</tt>, at runtime
    # Hanami creates a routes factory called <tt>Web.routes</tt>.
    #
    # By including this module in a view, it makes that factory avaliable as
    # <tt>routes</tt>.
    #
    # @since 0.1.0
    #
    # @example Basic usage in template
    #   require 'hanami'
    #
    #   module Web::Views::Home
    #     class Index
    #       include Web::View
    #     end
    #   end
    #
    #   # ERB template
    #   # <%= routes.home_path %>
    #
    # @example 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 %>
    module RoutingHelper
      # @since 0.1.0
      # @api private
      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
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
hanami-helpers-1.3.3 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.3.2 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.3.1 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.3.0 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.3.0.beta1 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.2 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.1 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.0 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.0.rc2 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.1.2 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.0.rc1 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.0.beta2 lib/hanami/helpers/routing_helper.rb
hanami-helpers-1.2.0.beta1 lib/hanami/helpers/routing_helper.rb