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
Calls superclass method
TarvitHelpers::HashPresenter::Cached::new
# 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