lib/dim.rb in dim-1.2.4 vs lib/dim.rb in dim-1.2.5

- old
+ new

@@ -55,18 +55,22 @@ end # Register a service named +name+. The +block+ will be used to # create the service on demand. It is recommended that symbols be # used as the name of a service. - def register(name, &block) - if @services[name] + def register(name,raise_error_on_duplicate = true,&block) + if @services[name] && raise_error_on_duplicate fail DuplicateServiceError, "Duplicate Service Name '#{name}'" end @services[name] = block self.class.send(:define_method, name) do self[name] end + end + + def override(name,&block) + register(name,false,&block) end # Lookup a service from ENV variables, or use a default if given; fall back to searching the container and its parents for a default value def register_env(name,default = nil) if value = ENV[name.to_s.upcase]