Sha256: 5ddfc4fe4a8fcd3fc0f36e3fa198ade3ddd36b6ef0923814e449763093041bca

Contents?: true

Size: 702 Bytes

Versions: 1

Compression:

Stored size: 702 Bytes

Contents

# frozen_string_literal: true

module Shark
  module Permissions
    class Changes
      attr_reader :effect
      attr_reader :privileges

      def initialize
        @privileges = {}
        @effect = {}
      end

      def add(field, old_value, new_value)
        return if old_value == new_value

        instance_variable_set("@#{field}", { old: old_value, new: old_value })
      end

      def add_privilege(key, old_value, new_value)
        @privileges[:old] ||= {}
        @privileges[:new] ||= {}
        @privileges[:old][key] = old_value
        @privileges[:new][key] = new_value
      end

      def present?
        @effect.present? || privileges.present?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shark-permissions-core-0.1.0 lib/shark/permissions/changes.rb