Sha256: 4acb8f09e8ad7f28bb61e5fb215e9e85ddfcf9debcd3d7d0f0bb1c22a7a3dd99

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 Bytes

Contents

# encoding: UTF-8
require "active_support/core_ext/array/extract_options"

require_relative "routes_context"
require_relative "js_function_helper"
require_relative "path"

module AssetPipelineRoutes
  class Routes
    def initialize routes
      define_application_routes routes
    end

    def define_application_routes routes
      routes.select{ |route| named_route?(route) }.each do |route|
        define_route route
      end
    end

    def define_route route
      self.class.instance_eval do
        define_method :"#{route.name}_path", Path.proc_for_route(route)

        define_method :"#{route.name}_path_method" do |style = :js|
          AssetPipelineRoutes::JsFunctionHelper::route_to_anonymous_function Path.new(route.path.ast.to_s).build(':\1'), style
        end
      end
    end

    def named_route? route
      !route.name.nil?
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
asset_pipeline_routes-0.0.4 lib/asset_pipeline_routes/routes.rb