123: def self.state_sequence(first, second)
124: findex = sindex = nil
125: unless findex = @parametervalues.index(state_name(first))
126: raise ArgumentError, "'%s' is not a valid zone state" % first
127: end
128: unless sindex = @parametervalues.index(state_name(second))
129: raise ArgumentError, "'%s' is not a valid zone state" % first
130: end
131: list = nil
132:
133:
134:
135: if findex > sindex
136: list = @parametervalues[sindex..findex].collect do |name|
137: @states[name]
138: end.reverse
139: else
140: list = @parametervalues[findex..sindex].collect do |name|
141: @states[name]
142: end
143: end
144:
145:
146: list[1..-1]
147: end