Class: Grape::Namespace

Inherits:
Object
  • Object
show all
Defined in:
lib/grape/namespace.rb

Overview

A container for endpoints or other namespaces, which allows for both logical grouping of endpoints as well as sharing common configuration. May also be referred to as group, segment, or resource.

Defined Under Namespace

Classes: JoinedSpaceCache

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(space, **options) ⇒ Namespace

Returns a new instance of Namespace.

Parameters:

  • space (String)

    the name of this namespace

  • options (Hash)

    options hash

Options Hash (**options):

  • :requirements (Hash)

    param-regex pairs, all of which must be met by a request's params for all endpoints in this namespace, or validation will fail and return a 422.



15
16
17
18
# File 'lib/grape/namespace.rb', line 15

def initialize(space, **options)
  @space = space.to_s
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



8
9
10
# File 'lib/grape/namespace.rb', line 8

def options
  @options
end

#spaceObject (readonly)

Returns the value of attribute space.



8
9
10
# File 'lib/grape/namespace.rb', line 8

def space
  @space
end

Class Method Details

.joined_space(settings) ⇒ Object



27
28
29
# File 'lib/grape/namespace.rb', line 27

def self.joined_space(settings)
  settings&.map(&:space)
end

.joined_space_path(settings) ⇒ Object

Join the namespaces from a list of settings to create a path prefix.

Parameters:

  • settings (Array)

    list of Grape::Util::InheritableSettings.



33
34
35
# File 'lib/grape/namespace.rb', line 33

def self.joined_space_path(settings)
  JoinedSpaceCache[joined_space(settings)]
end

Instance Method Details

#requirementsHash

Retrieves the requirements from the options hash, if given.

Returns:

  • (Hash)


22
23
24
# File 'lib/grape/namespace.rb', line 22

def requirements
  options[:requirements] || {}
end