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.



17
18
19
20
# File 'lib/grape/namespace.rb', line 17

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

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



10
11
12
# File 'lib/grape/namespace.rb', line 10

def options
  @options
end

#spaceObject (readonly)

Returns the value of attribute space.



10
11
12
# File 'lib/grape/namespace.rb', line 10

def space
  @space
end

Class Method Details

.joined_space(settings) ⇒ Object



29
30
31
# File 'lib/grape/namespace.rb', line 29

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.



35
36
37
# File 'lib/grape/namespace.rb', line 35

def self.joined_space_path(settings)
  Grape::Router.normalize_path(JoinedSpaceCache[joined_space(settings)])
end

Instance Method Details

#requirementsHash

Retrieves the requirements from the options hash, if given.

Returns:

  • (Hash)


24
25
26
# File 'lib/grape/namespace.rb', line 24

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