Sha256: 6bb6e64e947b1037e2552dec6ef38524011b23b9dceace846ba4d30ae08cc492

Contents?: true

Size: 709 Bytes

Versions: 12

Compression:

Stored size: 709 Bytes

Contents

module PolicyManager
  class Rule
    attr_accessor :validates_on, 
    :if, 
    :blocking, 
    :name, 
    :on_reject,
    :on_accept

    def initialize(opts={})
      self.name = opts[:name]
      self.blocking = opts[:blocking]
      self.validates_on = opts[:validates_on]
      self.if = opts[:if]
      self.on_reject = opts[:on_reject]
      self.on_accept = opts[:on_accept]
      self
    end

    def validates_on
      @validates_on #|| [:create]
    end

    def terms
      Term.where("rule =?", self.name)
    end

    def on_reject_callback
      @on_reject.call if @on_reject.is_a?(Proc)
    end

    def on_accept_callback
      @on_accept.call if @on_accept.is_a?(Proc)
    end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gdpr_rails-0.5.1 lib/policy_manager/rule.rb
gdpr_rails-0.5.0 lib/policy_manager/rule.rb
gdpr_rails-0.4.0 lib/policy_manager/rule.rb
gdpr_rails-0.3.4 lib/policy_manager/rule.rb
gdpr_rails-0.3.3 lib/policy_manager/rule.rb
gdpr_rails-0.3.2 lib/policy_manager/rule.rb
gdpr_rails-0.3.1 lib/policy_manager/rule.rb
gdpr_rails-0.3.0 lib/policy_manager/rule.rb
gdpr_rails-0.2.4 lib/policy_manager/rule.rb
gdpr_rails-0.2.2 lib/policy_manager/rule.rb
gdpr_rails-0.2.1 lib/policy_manager/rule.rb
gdpr_rails-0.2.0 lib/policy_manager/rule.rb