Sha256: 5f4569e144e79b211de2d9828feb8ba844f520aa0ff1df8ddf971a7e870bfdd0

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

class Card
  class Migration
    class Import
      # executes the card import
      class Merger
        OUTPUT_FILE = Card::Migration.data_path "unmerged"

        def initialize opts={}
          load_data opts
        end

        def merge
          puts("nothing to merge") && return if @data.empty?

          Card::Mailer.perform_deliveries = false
          Card::Auth.as_bot do
            Card.merge_list @data, output_file: OUTPUT_FILE
          end

          update_import_data
        end

        private

        def load_data opts
          @data =
            if opts[:all]
              ImportData.all_cards
            elsif opts[:only]
              ImportData.select_cards opts[:only]
            else
              ImportData.changed_cards
            end
        end

        def update_import_data
          update_time = Time.zone.now.to_s
          ImportData.update do |import_data|
            @data.each do |card_data|
              import_data.merged card_data, update_time
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.21.0 lib/card/migration/import/merger.rb
card-1.20.4 lib/card/migration/import/merger.rb
card-1.20.3 lib/card/migration/import/merger.rb
card-1.20.2 lib/card/migration/import/merger.rb
card-1.20.1 lib/card/migration/import/merger.rb
card-1.20.0 lib/card/migration/import/merger.rb