Sha256: d8949ac4f0935d7df9ea06ad142bb563c5f2d35054addc59b32f9321b7af1ea1

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

module Rallycat
  class Update
    def initialize(api)
      @api = api
    end

    def task(task_number, attributes)
      results = @api.find(:task) do
        equal :formatted_id, task_number
      end

      task = results.first

      if attributes[:state] && !attributes[:blocked]
        attributes[:blocked] = false
      end

      user_name = attributes[:owner]

      if user_name
        user_results = @api.find(:user) do
          equal :display_name, user_name
        end
        attributes[:owner] = user_results.first.login_name
      end

      task.update(attributes)

      messages = []

      messages << %{Task (#{task_number}) was set to "#{attributes[:state]}".} if attributes[:state]
      messages << "Task (#{task_number}) was blocked." if attributes[:blocked]
      messages << %{Task (#{task_number}) was assigned to "#{user_name}".} if attributes[:owner]

      messages.join("\n")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rallycat-0.2.0 lib/rallycat/update.rb