Class: HALPresenter::Policy::Rules
- Inherits:
-
Object
- Object
- HALPresenter::Policy::Rules
- Defined in:
- lib/hal_presenter/policy/rules.rb
Constant Summary collapse
- DEFAULT_PROC =
Proc.new { false }
Instance Attribute Summary collapse
-
#transform_rels ⇒ Object
Returns the value of attribute transform_rels.
Instance Method Summary collapse
- #add_attribute(name, block) ⇒ Object
- #add_embed(name, block) ⇒ Object
- #add_link(rel, block) ⇒ Object
- #attribute_rule_for(name) ⇒ Object
- #defaults(*types, value: false) ⇒ Object
- #dup ⇒ Object
- #embed_rule_for(name) ⇒ Object
-
#initialize ⇒ Rules
constructor
A new instance of Rules.
- #link_rule_for(rel) ⇒ Object
Constructor Details
#initialize ⇒ Rules
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_rels ⇒ Object
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 (name, block) name = transform(name) [name] = block end |
#add_link(rel, block) ⇒ Object
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 |
#dup ⇒ Object
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, .dup) end end |
#embed_rule_for(name) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/hal_presenter/policy/rules.rb', line 46 def (name) name = transform(name) return [name] if .key? name [strip_curie(name)] end |
#link_rule_for(rel) ⇒ Object
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 |