# File lib/dm-core/transaction.rb, line 177
    def method_missing(meth, *args, &block)
      if args.size == 1 && args.first.kind_of?(Adapters::AbstractAdapter)
        if (match = meth.to_s.match(/^(.*)_if_(none|begin|rollback|commit)$/))
          if self.respond_to?(match[1], true)
            if state_for(args.first).to_s == match[2]
              self.send(match[1], args.first)
            end
          else
            super
          end
        elsif (match = meth.to_s.match(/^(.*)_unless_(none|begin|rollback|commit)$/))
          if self.respond_to?(match[1], true)
            unless state_for(args.first).to_s == match[2]
              self.send(match[1], args.first)
            end
          else
            super
          end
        else
          super
        end
      else
        super
      end
    end