Class: Status

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

Constant Summary collapse

NEW =
new("New",false)
ESTIMATED =
new("Estimated",false)
IN_PLAY =
new("In Play")
IN_DEV =
new("In Development")
COMPLETE =
new("Complete")
IN_ACCEPTANCE =
new("In Acceptance")
REJECTED =
new("Rejected")
ACCEPTED =
new("Accepted")
DELIVERED =
new("Delivered",false)
DROPPED =
new("Dropped",false)
@@values =
Hash.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, active = true) ⇒ Status

Returns a new instance of Status.



13
14
15
16
17
18
# File 'lib/status.rb', line 13

def initialize(name, active = true)
  @name = name
  @active = active
  @precedence = @@values.size()
  @@values[@name]=self
end

Instance Attribute Details

#nameObject (readonly)

The text description



10
11
12
# File 'lib/status.rb', line 10

def name
  @name
end

#precedenceObject (readonly)

The text description



10
11
12
# File 'lib/status.rb', line 10

def precedence
  @precedence
end

#successorsObject

Returns the value of attribute successors.



11
12
13
# File 'lib/status.rb', line 11

def successors
  @successors
end

Class Method Details

.active_statusesObject



28
29
30
# File 'lib/status.rb', line 28

def Status.active_statuses
  @@values.values.select { |status| status.active?()}.sort {|x,y| x.precedence() <=> y.precedence()}
end

.get(n) ⇒ Object



32
33
34
# File 'lib/status.rb', line 32

def Status.get(n)
  @@values[n]
end

.inactive_statusesObject



24
25
26
# File 'lib/status.rb', line 24

def Status.inactive_statuses
  @@values.values.select { |status| ! status.active?()}.sort {|x,y| x.precedence() <=> y.precedence()}
end

.valuesObject



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

def Status.values
  @@values.values.sort()
end

Instance Method Details

#<=>(other) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/status.rb', line 40

def <=> (other)
  result = nil
  if (other.kind_of?(Status))
    result = precedence() <=> other.precedence()
  end
  return result
end

#active?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/status.rb', line 36

def active?
  @active
end