Sha256: 904f81a595ed13b422c1ed79f951b244b5832fad85a837c16dea4725326e40f7

Contents?: true

Size: 1 KB

Versions: 10

Compression:

Stored size: 1 KB

Contents

module Calagator

module DuplicateChecking
  module ControllerActions
    # GET /#{model_class}/duplicates
    def duplicates
      @type = params[:type] || "na"
      @grouped = model_class.find_duplicates_by_type(@type)
    rescue ArgumentError => e
      @grouped = {}
      flash[:failure] = e.to_s
    end

    # POST /#{model_class}/squash_multiple_duplicates
    def squash_many_duplicates
      master = model_class.find_by_id(params[:master_id])
      duplicate_ids = params.keys.grep(/^duplicate_id_\d+$/){|t| params[t].to_i}
      duplicates = model_class.where(id: duplicate_ids)

      squasher = model_class.squash(master, duplicates)
      if squasher.success
        flash[:success] = squasher.success
      else
        flash[:failure] = squasher.failure
      end
      redirect_to action: "duplicates", type: params[:type]
    end

    private

    def model_class
      # Derive model class from controller name
      "Calagator::#{controller_name.singularize.titleize}".constantize
    end
  end
end

end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
calagator-1.0.0 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.9 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.8 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.7 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.6 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.5 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.3 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.2 lib/calagator/duplicate_checking/controller_actions.rb
grokus-1.0.0.1 lib/calagator/duplicate_checking/controller_actions.rb
calagator-1.0.0.rc3 lib/calagator/duplicate_checking/controller_actions.rb