lib/pears/subject.rb in pears-0.1.0 vs lib/pears/subject.rb in pears-0.1.1
- old
+ new
@@ -3,10 +3,11 @@
module Pears
# A subject is a collection of settings.
# You could different Pears::Subjects in your application for different parts
# of its domain. for instance: application_settings, theming or translations.
class Subject
+ include Enumerable
attr_reader :name
def initialize(name, *layers)
@name = name
@layers = layers
@@ -36,9 +37,13 @@
# Projects the layers to a hash that van be used as a single source of truth.
def project
layers.reverse.reduce(Hash.new) do |hash, layer|
hash.deep_merge(layer.data)
end.with_indifferent_access
+ end
+
+ def each(&block)
+ project.each(&block)
end
private
def layers