Class: Dsu::Presenters::Project::RenameByNumberPresenter

Inherits:
BasePresenterEx show all
Defined in:
lib/dsu/presenters/project/rename_by_number_presenter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_number:, new_project_name:, new_project_description:, options: {}) ⇒ RenameByNumberPresenter

Returns a new instance of RenameByNumberPresenter.

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 14

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

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

  @project_number = project_number

  @project = Models::Project.find_by_number(project_number: project_number)

  @new_project = Models::Project.new(project_name: new_project_name.strip,
    description: new_project_description&.strip, options: options).tap(&:validate)
end

Instance Attribute Details

#project_numberObject (readonly)

Returns the value of attribute project_number.



12
13
14
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 12

def project_number
  @project_number
end

Instance Method Details

#new_project_already_exists?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 41

def new_project_already_exists?
  new_project.exist?
end

#new_project_descriptionObject



49
50
51
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 49

def new_project_description
  new_project.description
end

#new_project_errorsObject



53
54
55
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 53

def new_project_errors
  new_project.errors.full_messages
end

#new_project_nameObject



45
46
47
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 45

def new_project_name
  new_project.project_name
end

#project_does_not_exist?Boolean

Returns:

  • (Boolean)


35
36
37
38
39
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 35

def project_does_not_exist?
  return true unless project.present?

  !project.exist?
end

#respond(response:) ⇒ Object



28
29
30
31
32
33
# File 'lib/dsu/presenters/project/rename_by_number_presenter.rb', line 28

def respond(response:)
  return false unless response
  return false if new_project.invalid?

  project.rename!(new_project_name: new_project_name, new_project_description: new_project_description)
end