Class: Dsu::Presenters::Project::UseByNumberPresenter

Inherits:
BasePresenterEx show all
Includes:
Defaultable
Defined in:
lib/dsu/presenters/project/use_by_number_presenter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_number:, options: {}) ⇒ UseByNumberPresenter

Returns a new instance of UseByNumberPresenter.

Raises:

  • (ArgumentError)


18
19
20
21
22
23
24
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 18

def initialize(project_number:, options: {})
  super(options: options)

  raise ArgumentError, 'project_number is blank' if project_number.blank?

  self.project_number = project_number
end

Instance Attribute Details

#project_numberObject

Returns the value of attribute project_number.



13
14
15
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 13

def project_number
  @project_number
end

Instance Method Details

#already_current_project?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 33

def already_current_project?
  project&.current_project?
end

#project_does_not_exist?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 37

def project_does_not_exist?
  !project&.exist?
end

#project_errorsObject



41
42
43
44
45
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 41

def project_errors
  return false unless project&.persisted?

  project.errors.full_messages
end

#respond(response:) ⇒ Object



26
27
28
29
30
31
# File 'lib/dsu/presenters/project/use_by_number_presenter.rb', line 26

def respond(response:)
  return false unless response

  project.default! if make_default? && project&.present?
  project.use! if project&.present?
end