Class: HALPresenter::Policy::Rules

Inherits:
Object
  • Object
show all
Defined in:
lib/hal_presenter/policy/rules.rb

Constant Summary collapse

DEFAULT_PROC =
Proc.new { false }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRules

Returns a new instance of Rules.



8
9
10
# File 'lib/hal_presenter/policy/rules.rb', line 8

def initialize
  @transform_rels = true
end

Instance Attribute Details

#transform_relsObject

Returns the value of attribute transform_rels.



6
7
8
# File 'lib/hal_presenter/policy/rules.rb', line 6

def transform_rels
  @transform_rels
end

Instance Method Details

#add_attribute(name, block) ⇒ Object



30
31
32
# File 'lib/hal_presenter/policy/rules.rb', line 30

def add_attribute(name, block)
  attributes[name] = block
end

#add_embed(name, block) ⇒ Object



53
54
55
56
# File 'lib/hal_presenter/policy/rules.rb', line 53

def add_embed(name, block)
  name = transform(name)
  embedded[name] = block
end


41
42
43
44
# File 'lib/hal_presenter/policy/rules.rb', line 41

def add_link(rel, block)
  rel = transform(rel)
  links[rel] = block
end

#attribute_rule_for(name) ⇒ Object



26
27
28
# File 'lib/hal_presenter/policy/rules.rb', line 26

def attribute_rule_for(name)
  attributes[name]
end

#defaults(*types, value: false) ⇒ Object



20
21
22
23
24
# File 'lib/hal_presenter/policy/rules.rb', line 20

def defaults(*types, value: false)
  types.each do |t|
    send(t).default= Proc.new { value }
  end
end

#dupObject



12
13
14
15
16
17
18
# File 'lib/hal_presenter/policy/rules.rb', line 12

def dup
  super.tap do |copy|
    copy.instance_variable_set(:@attributes, attributes.dup)
    copy.instance_variable_set(:@links, links.dup)
    copy.instance_variable_set(:@embedded, embedded.dup)
  end
end

#embed_rule_for(name) ⇒ Object



46
47
48
49
50
51
# File 'lib/hal_presenter/policy/rules.rb', line 46

def embed_rule_for(name)
  name = transform(name)
  return embedded[name] if embedded.key? name

  embedded[strip_curie(name)]
end


34
35
36
37
38
39
# File 'lib/hal_presenter/policy/rules.rb', line 34

def link_rule_for(rel)
  rel = transform(rel)
  return links[rel] if links.key? rel

  links[strip_curie(rel)]
end