# File lib/puppet/provider/augeas/augeas.rb, line 194
194:   def process_match(cmd_array)
195:     return_value = false
196: 
197:     #validate and tear apart the command
198:     fail("Invalid command: #{cmd_array.join(" ")}") if cmd_array.length < 3
199:     cmd = cmd_array.shift
200:     path = cmd_array.shift
201: 
202:     # Need to break apart the clause
203:     clause_array = parse_commands(cmd_array.shift)[0]
204:     verb = clause_array.shift
205: 
206:     #Get the values from augeas
207:     result = @aug.match(path) || []
208:     fail("Error trying to match path '#{path}'") if (result == -1)
209: 
210:     # Now do the work
211:     case verb
212:     when "size"
213:       fail("Invalid command: #{cmd_array.join(" ")}") if clause_array.length != 2
214:       comparator = clause_array.shift
215:       arg = clause_array.shift
216:       return_value = (result.size.send(comparator, arg))
217:     when "include"
218:       arg = clause_array.shift
219:       return_value = result.include?(arg)
220:     when "not_include"
221:       arg = clause_array.shift
222:       return_value = !result.include?(arg)
223:     when "=="
224:       begin
225:         arg = clause_array.shift
226:         new_array = eval arg
227:         return_value = (result == new_array)
228:       rescue
229:         fail("Invalid array in command: #{cmd_array.join(" ")}")
230:       end
231:     when "!="
232:       begin
233:         arg = clause_array.shift
234:         new_array = eval arg
235:         return_value = (result != new_array)
236:       rescue
237:         fail("Invalid array in command: #{cmd_array.join(" ")}")
238:       end
239:     end
240:     !!return_value
241:   end