zooniverse/Talk-Api

View on GitHub
app/models/concerns/hash_changes.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module HashChanges
  extend ActiveSupport::Concern

  def added_to(key)
    changes_for(key) do |was, is|
      is.dup.reject{ |key, val| was.has_key? key }
    end
  end

  def removed_from(key)
    changes_for(key) do |was, is|
      was.dup.reject{ |key, val| is.has_key? key }
    end
  end

  protected

  def changes_for(key)
    return { } unless changes[key]
    yield *changes[key]
  end
end