serradura/slack-time-tracker

View on GitHub
app/lib/time_entries/base_row.rb

Summary

Maintainability
A
0 mins
Test Coverage
module TimeEntries
  class BaseRow
    IDS_PATTERN = /(\-i|\-\-ids)/.freeze

    def ids?
      @data =~ IDS_PATTERN
    end

    def last_col(value)
      "\t#{value}"
    end

    def col(value)
      "\t#{value}\t|"
    end

    def text
      row = "#{col(date)}#{col(start_time)}#{col(end_time)}#{col(duration)}#{last_col(note)}"

      ids? ? "#{col(id)}#{row}" : row
    end

    def build
      text.tap(&:strip!)
    end
  end
end