Class: Dsu::Presenters::Project::RenamePresenter

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

Instance Method Summary collapse

Constructor Details

#initialize(project_name:, new_project_name:, new_project_description:, options: {}) ⇒ RenamePresenter

Returns a new instance of RenamePresenter.

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
20
21
22
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 12

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

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

  @project = Models::Project.find_or_initialize(project_name: project_name)

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

Instance Method Details

#new_project_already_exists?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 35

def new_project_already_exists?
  new_project.exist?
end

#new_project_descriptionObject



43
44
45
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 43

def new_project_description
  new_project.description
end

#new_project_errorsObject



47
48
49
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 47

def new_project_errors
  new_project.errors.full_messages
end

#new_project_nameObject



39
40
41
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 39

def new_project_name
  new_project.project_name
end

#project_does_not_exist?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 31

def project_does_not_exist?
  !project.exist?
end

#respond(response:) ⇒ Object



24
25
26
27
28
29
# File 'lib/dsu/presenters/project/rename_presenter.rb', line 24

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