Sha256: 23931f13795f74b89ca58ad87fa53be4e38c9e0b59182ffa0483a8abce8bc1ba

Contents?: true

Size: 718 Bytes

Versions: 2

Compression:

Stored size: 718 Bytes

Contents

module Typekit
  module Routing
    module Node
      class Operation < Base
        def initialize(name, action:, on:, **options)
          # TODO: how about on == :collection?
          unless Typekit.actions.include?(action) && on == :member
            raise Error, 'Not supported'
          end
          @name = name
          @action = action
        end

        def match(name)
          if @name.is_a?(String) && @name =~ /^:/
            true
          else
            @name == name
          end
        end

        def process(request, path)
          request << path.shift # @name
        end

        def permitted?(request)
          @action == request.action
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
typekit-client-0.0.3 lib/typekit/routing/node/operation.rb
typekit-client-0.0.2 lib/typekit/routing/node/operation.rb