Class: Gitlab::Issuable::NamespaceGetter

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/issuable/namespace_getter.rb

Constant Summary collapse

INVALID_ISSUABLE_ERROR =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(issuable, excluded_issuable_types: [], allow_nil: false) ⇒ NamespaceGetter

Returns a new instance of NamespaceGetter.



8
9
10
11
12
13
14
# File 'lib/gitlab/issuable/namespace_getter.rb', line 8

def initialize(issuable, excluded_issuable_types: [], allow_nil: false)
  @issuable = issuable
  @excluded_issuable_types = excluded_issuable_types
  @allow_nil = allow_nil

  raise_invalid_issuable_error if excluded_issuable_types.include?(issuable.class)
end

Instance Method Details

#namespace_idObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/gitlab/issuable/namespace_getter.rb', line 16

def namespace_id
  case issuable
  when Issue
    issuable.namespace_id
  when MergeRequest
    issuable.project.project_namespace_id
  else
    return if @allow_nil && issuable.nil?

    raise_invalid_issuable_error
  end
end