Sha256: db914128e38df78789a9a77dbc17d0782aeda9ae1dc1ab20b382bd1f43f17c14

Contents?: true

Size: 775 Bytes

Versions: 1

Compression:

Stored size: 775 Bytes

Contents

module React
  module Component

    module ClassMethods

      def url_param_evaluators
        @url_param_evaluators ||= []
      end

      attr_accessor :evaluated_url_params

      def router_param(name, opts = {}, &block)

        method_name = opts[:as] || name

        url_param_evaluators << [name, block]

        class << self
          define_method method_name do
            evaluated_url_params[name]
          end
        end

        define_method method_name do
          self.class.send(method_name)
        end

      end

    end

    def route_handler(*args)
      Router::RR::RouteHandler(*args)
    end

    def link(opts = {}, &block)
      opts[:params] = opts[:params].to_n if opts[:params]
      Router::RR::Link(opts, &block)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reactive-router-0.7.5 lib/reactive-router/component.rb