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