Class: TimeScheduler::OrderSet

Inherits:
Set
  • Object
show all
Defined in:
lib/time_scheduler/order_set.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ OrderSet

Returns a new instance of OrderSet.



42
43
44
45
# File 'lib/time_scheduler/order_set.rb', line 42

def initialize(*args)
  @keys = nil
  super
end

Class Method Details

.[](*ary) ⇒ Object

:nodoc:



37
38
39
# File 'lib/time_scheduler/order_set.rb', line 37

def [](*ary)        # :nodoc:
  new(ary)
end

Instance Method Details

#add(o) ⇒ Object Also known as: <<



57
58
59
60
61
# File 'lib/time_scheduler/order_set.rb', line 57

def add(o)
  o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>"
  @keys = nil
  super
end

#clearObject



47
48
49
50
# File 'lib/time_scheduler/order_set.rb', line 47

def clear
  @keys = nil
  super
end

#delete(o) ⇒ Object



64
65
66
67
68
# File 'lib/time_scheduler/order_set.rb', line 64

def delete(o)
  @keys = nil
  @hash.delete(o)
  self
end

#delete_ifObject



70
71
72
73
74
75
76
# File 'lib/time_scheduler/order_set.rb', line 70

def delete_if
  block_given? or return enum_for(__method__) { size }
  n = @hash.size
  super
  @keys = nil if @hash.size != n
  self
end

#each(&block) ⇒ Object



91
92
93
94
95
# File 'lib/time_scheduler/order_set.rb', line 91

def each(&block)
  block or return enum_for(__method__) { size }
  to_a.each(&block)
  self
end

#freezeObject



102
103
104
105
# File 'lib/time_scheduler/order_set.rb', line 102

def freeze
  to_a
  super
end

#keep_ifObject



78
79
80
81
82
83
84
# File 'lib/time_scheduler/order_set.rb', line 78

def keep_if
  block_given? or return enum_for(__method__) { size }
  n = @hash.size
  super
  @keys = nil if @hash.size != n
  self
end

#merge(enum) ⇒ Object



86
87
88
89
# File 'lib/time_scheduler/order_set.rb', line 86

def merge(enum)
  @keys = nil
  super
end

#rehashObject



107
108
109
110
# File 'lib/time_scheduler/order_set.rb', line 107

def rehash
  @keys = nil
  super
end

#replace(enum) ⇒ Object



52
53
54
55
# File 'lib/time_scheduler/order_set.rb', line 52

def replace(enum)
  @keys = nil
  super
end

#to_aObject



97
98
99
100
# File 'lib/time_scheduler/order_set.rb', line 97

def to_a
  (@keys = @hash.keys).sort! unless @keys
  @keys
end