Module: RSS::Utils::InheritedReader

Included in:
Element, Maker::Base
Defined in:
lib/rss/utils.rb

Instance Method Summary collapse

Instance Method Details

#inherited_array_reader(constant_name) ⇒ Object



187
188
189
190
191
# File 'lib/rss/utils.rb', line 187

def inherited_array_reader(constant_name)
  inherited_reader(constant_name) do |result, current|
    current + result
  end
end

#inherited_hash_reader(constant_name) ⇒ Object



193
194
195
196
197
# File 'lib/rss/utils.rb', line 193

def inherited_hash_reader(constant_name)
  inherited_reader(constant_name) do |result, current|
    result.merge(current)
  end
end

#inherited_reader(constant_name) ⇒ Object



171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/rss/utils.rb', line 171

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