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, requirements: nil, **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
19
# File 'lib/grape/namespace.rb', line 15

def initialize(space, requirements: nil, **options)
  @space = space.to_s
  @requirements = requirements
  @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

#requirementsObject (readonly)

Returns the value of attribute requirements.



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

def requirements
  @requirements
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



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

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.



40
41
42
# File 'lib/grape/namespace.rb', line 40

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

Instance Method Details

#eql?(other) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


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

def eql?(other)
  other.class == self.class &&
    other.space == space &&
    other.requirements == requirements &&
    other.options == options
end

#hashObject



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

def hash
  [self.class, space, requirements, options].hash
end