Sha256: 6f8be7541416050a607f732b8cf73f1d78dd101f508f1e15182a1c78eeb76c3b

Contents?: true

Size: 620 Bytes

Versions: 2

Compression:

Stored size: 620 Bytes

Contents

module Polo
  module Adapters
    class MySQL
      def on_duplicate_key_update(inserts, records)
        insert_and_record = inserts.zip(records)
        insert_and_record.map do |insert, record|
          values_syntax = record.attributes.keys.map do |key|
            "#{key} = VALUES(#{key})"
          end

          on_dup_syntax = "ON DUPLICATE KEY UPDATE #{values_syntax.join(', ')}"

          "#{insert} #{on_dup_syntax}"
        end
      end

      def ignore_transform(inserts, records)
        inserts.map do |insert|
          insert.gsub("INSERT", "INSERT IGNORE")
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
polo-0.4.0 lib/polo/adapters/mysql.rb
polo-0.3.0 lib/polo/adapters/mysql.rb