Sha256: 235dd46e28478c6af56879ffd7270017a463fab49b8428256f71a3cfb986e85d

Contents?: true

Size: 936 Bytes

Versions: 6

Compression:

Stored size: 936 Bytes

Contents

require 'lotus/utils/string'

module Lotus
  module Action
    # Routing helper for full stack Lotus web applications.
    #
    # For a given application called <tt>Web::Application</tt>, at runtime
    # Lotus creates a routes factory called <tt>Web::Routes</tt>.
    #
    # Included by default in every controller.
    #
    # @since 0.3.2
    #
    # @example Usage in controller
    #   require 'lotus'
    #
    #   module Web::Controllers::Protected
    #     class Index
    #       include Web::Action
    #
    #       def call(params)
    #         redirect_to routes.root_path
    #       end
    #     end
    #   end
    module RoutingHelpers
      def self.included(base)
        factory = "#{ Utils::String.new(base).namespace }::Routes"

        base.class_eval <<-END_EVAL, __FILE__, __LINE__
          private

          def routes
            #{ factory }
          end
        END_EVAL
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
lotusrb-0.6.1 lib/lotus/action/routing_helpers.rb
lotusrb-0.6.0 lib/lotus/action/routing_helpers.rb
lotusrb-0.5.0 lib/lotus/action/routing_helpers.rb
lotusrb-0.4.1 lib/lotus/action/routing_helpers.rb
lotusrb-0.4.0 lib/lotus/action/routing_helpers.rb
lotusrb-0.3.2 lib/lotus/action/routing_helpers.rb