class Grape::Middleware::Versioner::Base

def self.inherited(klass)

def self.inherited(klass)
  super
  Versioner.register(klass)
end

def cascade?

this behavior, and not add the `X-Cascade` header, one can set the `:cascade` option to `false`.
of routes (see Grape::Router) for more information). To prevent
By default those errors contain an `X-Cascade` header set to `pass`, which allows nesting and stacking
def cascade?
  version_options[:cascade]
end

def default_options

def default_options
  {
    versions: nil,
    prefix: nil,
    mount_path: nil,
    pattern: DEFAULT_PATTERN,
    version_options: {
      strict: false,
      cascade: true,
      parameter: DEFAULT_PARAMETER
    }
  }
end

def error_headers

def error_headers
  cascade? ? { Grape::Http::Headers::X_CASCADE => 'pass' } : {}
end

def mount_path

def mount_path
  options[:mount_path]
end

def parameter_key

def parameter_key
  version_options[:parameter]
end

def pattern

def pattern
  options[:pattern]
end

def potential_version_match?(potential_version)

def potential_version_match?(potential_version)
  versions.blank? || versions.any? { |v| v.to_s == potential_version }
end

def prefix

def prefix
  options[:prefix]
end

def strict?

def strict?
  version_options[:strict]
end

def vendor

def vendor
  version_options[:vendor]
end

def version_not_found!

def version_not_found!
  throw :error, status: 404, message: '404 API Version Not Found', headers: { Grape::Http::Headers::X_CASCADE => 'pass' }
end

def version_options

def version_options
  options[:version_options]
end

def versions

def versions
  options[:versions]
end