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

Version Path
dsu-3.0.0.alpha.12 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.11 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.10 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.9 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.8 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.7 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.6 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.5 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.4 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.3 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.2 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.1 lib/dsu/presenters/project/use_by_number_presenter.rb
dsu-3.0.0.alpha.0 lib/dsu/presenters/project/use_by_number_presenter.rb