Data deconstructor / pattern matcher for Ruby