Class: YaPPL::Policy
- Inherits:
-
Object
- Object
- YaPPL::Policy
- Defined in:
- lib/policy.rb
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Class Method Summary collapse
Instance Method Summary collapse
- #active_rules ⇒ Object
- #add_rule(rule) ⇒ Object
- #archive_rule(rule_id) ⇒ Object
- #archived_rules ⇒ Object
- #create_policy ⇒ Object
- #get_excluded_purpose ⇒ Object
- #get_excluded_utilizer ⇒ Object
-
#get_tr_rules ⇒ Object
rename?.
-
#initialize(id, rules) ⇒ Policy
constructor
A new instance of Policy.
- #new_rule(args) ⇒ Object
- #rule_by_id(id) ⇒ Object
- #to_json ⇒ Object
- #update_rule(id, args) ⇒ Object
Constructor Details
#initialize(id, rules) ⇒ Policy
Returns a new instance of Policy.
5 6 7 8 |
# File 'lib/policy.rb', line 5 def initialize(id, rules) @id = id @rules = rules end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
3 4 5 |
# File 'lib/policy.rb', line 3 def id @id end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
3 4 5 |
# File 'lib/policy.rb', line 3 def rules @rules end |
Class Method Details
Instance Method Details
#active_rules ⇒ Object
80 81 82 |
# File 'lib/policy.rb', line 80 def active_rules rules.select { |rule| rule.id != -1 && !rule.expired? } end |
#add_rule(rule) ⇒ Object
30 31 32 33 34 |
# File 'lib/policy.rb', line 30 def add_rule(rule) max_id = rules.map(&:id).max rule.id = max_id + 1 rules << rule end |
#archive_rule(rule_id) ⇒ Object
46 47 48 49 |
# File 'lib/policy.rb', line 46 def archive_rule(rule_id) rule = rule_by_id(rule_id) rule.archive! end |
#archived_rules ⇒ Object
76 77 78 |
# File 'lib/policy.rb', line 76 def archived_rules rules.select { |rule| rule.id == -1 } end |
#create_policy ⇒ Object
14 15 16 |
# File 'lib/policy.rb', line 14 def create_policy to_json end |
#get_excluded_purpose ⇒ Object
18 19 20 |
# File 'lib/policy.rb', line 18 def get_excluded_purpose rules.map(&:excluded_purposes).flatten.uniq end |
#get_excluded_utilizer ⇒ Object
22 23 24 |
# File 'lib/policy.rb', line 22 def get_excluded_utilizer rules.map(&:excluded_utilizers).flatten.uniq end |
#get_tr_rules ⇒ Object
rename?
36 37 38 39 40 41 42 43 44 |
# File 'lib/policy.rb', line 36 def get_tr_rules # rename? active_rules.map do |rule| { permitted_purposes: rule.permitted_purposes, permitted_utilizers: rule.permitted_utilizers, transformations: rule.transformations } end end |
#new_rule(args) ⇒ Object
26 27 28 |
# File 'lib/policy.rb', line 26 def new_rule(args) add_rule Rule.new(args) end |
#rule_by_id(id) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/policy.rb', line 67 def rule_by_id(id) matching_rules = rules.select { |rule| rule.id == id } if matching_rules.count == 1 matching_rules.first else matching_rules end end |
#to_json ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/policy.rb', line 58 def to_json preferences = @rules.map { |rule| { rule: rule.to_h } } { id: @id, preference: preferences }.to_json end |