Sha256: cc17cc7a06e639ccb29691905de728ac64dc486d2902eca3e1cf9f6f3a991f7f
Contents?: true
Size: 1.21 KB
Versions: 13
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require_relative '../../models/project' require_relative '../base_presenter_ex' module Dsu module Presenters module Project class UseByNumberPresenter < BasePresenterEx attr_reader :project_number delegate :project_name, to: :project, allow_nil: true delegate :description, to: :project, prefix: true, allow_nil: true def initialize(project_number:, options: {}) super(options: options) raise ArgumentError, 'project_number is blank' if project_number.blank? self.project_number = project_number end def respond(response:) return false unless response project.use! if project&.present? end def already_current_project? project&.current_project? end def project_does_not_exist? !project&.exist? end def project_errors return false unless project&.persisted? project.errors.full_messages end private attr_writer :project_number def project @project ||= Models::Project.find_by_number(project_number: project_number) end end end end end
Version data entries
13 entries across 13 versions & 1 rubygems