Sha256: 552a623e6402b4245ec1c5ea4d50d8763e460e072e6bad1baa27bb8c06184ac7

Contents?: true

Size: 572 Bytes

Versions: 6

Compression:

Stored size: 572 Bytes

Contents

class RailsExecution::Label < RailsExecution::AppModel
  SPECIAL_LABLES = ['scheduled', 'repeat']
  COLORS = 'red pink purple deep-purple indigo blue light-blue cyan teal green orange deep-orange brown grey blue-grey'.split

  has_many :task_labels, class_name: 'RailsExecution::TaskLabel'
  has_many :tasks, through: :task_labels

  validates :name, presence: true, uniqueness: { case_sensitive: false }
  scope :normal, -> { where.not(name: SPECIAL_LABLES) }

  def color
    color_index = self.name.to_s.chars.sum(&:ord) % COLORS.size
    COLORS[color_index]
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rails_execution-0.1.12 app/models/rails_execution/label.rb
rails_execution-0.1.11 app/models/rails_execution/label.rb
rails_execution-0.1.10 app/models/rails_execution/label.rb
rails_execution-0.1.9 app/models/rails_execution/label.rb
rails_execution-0.1.8 app/models/rails_execution/label.rb
rails_execution-0.1.7 app/models/rails_execution/label.rb