Module: RSS::Utils::InheritedReader
- Included in:
- Element, Maker::Base
- Defined in:
- lib/rss/utils.rb
Instance Method Summary collapse
- #inherited_array_reader(constant_name) ⇒ Object
- #inherited_hash_reader(constant_name) ⇒ Object
- #inherited_reader(constant_name) ⇒ Object
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 |