Class: Omniboard::Group

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/omniboard/group.rb

Overview

This class represents a “group” of Projects.

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(identifier) ⇒ Group

Returns a new instance of Group.

Raises:

  • (ArgumentError)


58
59
60
61
62
# File 'lib/omniboard/group.rb', line 58

def initialize(identifier)
	raise(ArgumentError, "nil identifier not allowed") if identifier.nil?
  @identifier = identifier
  Omniboard::Group.add(self)
end

Class Attribute Details

.brightnessObject

Global values for group colour brightness and saturation



27
28
29
# File 'lib/omniboard/group.rb', line 27

def brightness
  @brightness
end

.groupsObject

All groups in the board



30
31
32
# File 'lib/omniboard/group.rb', line 30

def groups
  @groups
end

.saturationObject

Global values for group colour brightness and saturation



27
28
29
# File 'lib/omniboard/group.rb', line 27

def saturation
  @saturation
end

Instance Attribute Details

#colourObject

The colour representation of a group



20
21
22
# File 'lib/omniboard/group.rb', line 20

def colour
  @colour
end

#identifierObject

The identifier for this group. Can be a string, object, whatever you like.



6
7
8
# File 'lib/omniboard/group.rb', line 6

def identifier
  @identifier
end

Class Method Details

.[](identifier) ⇒ Object

Find a group by identifier



33
34
35
# File 'lib/omniboard/group.rb', line 33

def [] identifier
	@groups.find{ |g| g.identifier == identifier } || new(identifier)
end

.add(g) ⇒ Object

Add a new group to the groups array. Also resets all colour assignments for the group. Note: usually called from initializer.



39
40
41
42
# File 'lib/omniboard/group.rb', line 39

def add(g)
	@groups.each(&:reset_colour)
	@groups << g
end

.default_colourObject Also known as: colour

If we don’t have any groups on our board, this is our default colour for ungrouped projects



46
47
48
# File 'lib/omniboard/group.rb', line 46

def default_colour
	Omniboard::Colour.new(0).standard
end

.light_colourObject

If we don’t have any groups on our board, this is our default light colour for ungrouped projects



53
54
55
# File 'lib/omniboard/group.rb', line 53

def light_colour
	Omniboard::Colour.new(0).light
end

Instance Method Details

#<=>(o) ⇒ Object



88
89
90
# File 'lib/omniboard/group.rb', line 88

def <=> o
	self.identifier <=> o.identifier
end

#assigned_colourObject



76
77
78
# File 'lib/omniboard/group.rb', line 76

def assigned_colour
	Omniboard::Column::colour_for_group(self.identifier)
end

#has_assigned_colour?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/omniboard/group.rb', line 80

def has_assigned_colour?
	assigned_colour != nil
end

#light_colourObject



68
69
70
# File 'lib/omniboard/group.rb', line 68

def light_colour
	colour_obj.light
end

#nameObject

Deprecated methods



9
10
11
12
# File 'lib/omniboard/group.rb', line 9

def name
	$stderr.puts "Group#name is deprecated. Use Group#identifier instead."
	@identifier
end

#name=(n) ⇒ Object



14
15
16
17
# File 'lib/omniboard/group.rb', line 14

def name= n
	$stderr.puts "Group#name= is deprecated. Use Group#identifier= instead."
	@identifier = n
end

#reset_colourObject



72
73
74
# File 'lib/omniboard/group.rb', line 72

def reset_colour
	@colour_obj = nil
end

#to_sObject



84
85
86
# File 'lib/omniboard/group.rb', line 84

def to_s
	@identifier
end