link (DataMapper::Transaction)

    # File lib/dm-core/transaction.rb, line 46
        def link(*things)
          unless @state == :none
            raise "Illegal state for link: #{@state}"
          end

          things.each do |thing|
            case thing
              when DataMapper::Adapters::AbstractAdapter
                @adapters[thing] = :none
              when DataMapper::Repository
                link(thing.adapter)
              when DataMapper::Model
                link(*thing.repositories)
              when DataMapper::Resource
                link(thing.model)
              when Array
                link(*thing)
              else
                raise "Unknown argument to #{self.class}#link: #{thing.inspect} (#{thing.class})"
            end
          end

          if block_given?
            commit { |*block_args| yield(*block_args) }
          else
            self
          end
        end