module LabelDefinitions

Constants

VERSION

Public Class Methods

add(label) click to toggle source

Adds a label definition to the in-memory list. Does not persist it.

# File lib/label_definitions.rb, line 21
def self.add(label)
  find(label.name) || (all << label)
end
all() click to toggle source
# File lib/label_definitions.rb, line 7
def self.all
  @labels ||= begin
    load_definitions.reduce([]) do |labels, (name, definition)|
      symbolize_keys! definition
      labels << Label.new(definition.merge(name: name))
    end
  end
end
find(name) click to toggle source
# File lib/label_definitions.rb, line 16
def self.find(name)
  all.detect { |label| label.name == name }
end

Private Class Methods

load_definitions() click to toggle source
# File lib/label_definitions.rb, line 27
def self.load_definitions
  YAML.load_file File.expand_path('../../labels.yml', __FILE__)
end
symbolize_keys!(hash) click to toggle source
# File lib/label_definitions.rb, line 31
def self.symbolize_keys!(hash)
  hash.keys.each do |key|
    hash[key.to_sym] = hash.delete key
  end
  hash
end