Sha256: dd29d64208b2b38adbd0ff59c84c8017296b3f8261c1853c521fe171de7b88e7

Contents?: true

Size: 713 Bytes

Versions: 5

Compression:

Stored size: 713 Bytes

Contents

require 'grape/middleware/base'

module Grape
  module Middleware
    class Versioner < Base
      def default_options
        {
          :pattern => /.*/i
        }
      end
      
      def before
        pieces = env['PATH_INFO'].split('/')
        potential_version = pieces[1]
        if potential_version =~ options[:pattern]
          if options[:versions] && !options[:versions].include?(potential_version)
            throw :error, :status => 404, :message => "404 API Version Not Found"
          end
          
          truncated_path = "/#{pieces[2..-1].join('/')}"
          env['api.version'] = potential_version
          env['PATH_INFO'] = truncated_path
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
grape-0.1.5 lib/grape/middleware/versioner.rb
grape-0.1.4 lib/grape/middleware/versioner.rb
grape-0.1.3 lib/grape/middleware/versioner.rb
grape-0.1.1 lib/grape/middleware/versioner.rb
grape-0.1.0 lib/grape/middleware/versioner.rb