class TarvitHelpers::HashPresenter::WithRules

Attributes

_rules[R]
_rules_holder[R]

Public Class Methods

new(hash, levels=[], parent=nil, rules_holder=nil, &rules) click to toggle source
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 7
def initialize(hash, levels=[], parent=nil, rules_holder=nil, &rules)
  super(hash, levels, parent)
  @_rules_holder = rules_holder || RulesHolder.new
  _add_rules(@_rules_holder) if _rules_holder.rules.empty?
  rules.call(_rules_holder) if rules
end

Public Instance Methods

_current_path(method_name) click to toggle source
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 14
def _current_path(method_name)
  _levels + [ method_name ]
end

Protected Instance Methods

_accessor_method?(method_name) click to toggle source
Calls superclass method
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 32
def _accessor_method?(method_name)
  super(method_name) || _rules_holder.rules.map{|r| r.path.last }.include?(method_name)
end
_add_rules(rules_holder) click to toggle source
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 30
def _add_rules(rules_holder); end
_hash_value(method_name) click to toggle source
Calls superclass method
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 20
def _hash_value(method_name)
  value =  super
  rule = _rules_holder.rule_for(_path(method_name))
  rule ? rule.value_transformer.call(value, self) : value
end
_new_level_presenter(value, method_name) click to toggle source
# File lib/tarvit-helpers/modules/hash_presenter/with_rules.rb, line 26
def _new_level_presenter(value, method_name)
  _new_level_presenter_klass.new(value, _path(method_name), self, _rules_holder)
end