module RSS::Utils::InheritedReader

Public Instance Methods

inherited_array_reader(constant_name) click to toggle source
# File lib/rss/utils.rb, line 98
def inherited_array_reader(constant_name)
  inherited_reader(constant_name) do |result, current|
    current + result
  end
end
inherited_hash_reader(constant_name) click to toggle source
# File lib/rss/utils.rb, line 104
def inherited_hash_reader(constant_name)
  inherited_reader(constant_name) do |result, current|
    result.merge(current)
  end
end
inherited_reader(constant_name) { |result, const| ... } click to toggle source
# File lib/rss/utils.rb, line 82
def inherited_reader(constant_name)
  base_class = inherited_base
  result = base_class.const_get(constant_name)
  found_base_class = false
  ancestors.reverse_each do |klass|
    if found_base_class
      if klass.const_defined?(constant_name)
        result = yield(result, klass.const_get(constant_name))
      end
    else
      found_base_class = klass == base_class
    end
  end
  result
end