Sha256: 868cd30e906be4ae9f45fca52646b27a3aeada6782018f5fc56e779892d73715

Contents?: true

Size: 937 Bytes

Versions: 14

Compression:

Stored size: 937 Bytes

Contents

#!/usr/bin/env ruby -wKU

require 'configurability' unless defined?( Configurability )


# Mixin that can be applied to classes to cause them to configure themselves
# as soon as they are able to.
module Configurability::DeferredConfig

	### Extension hook: log when the mixin is used.
	def self::extended( mod )
		Configurability.log.debug "Adding deferred configuration hook to %p" % [ mod ]
		super
	end


	### Singleton method definition hook: configure the instance as soon as it
	### overrides the #configure method supplied by the Configurability mixin itself.
	def singleton_method_added( sym )
		super

		if sym == :configure
			Configurability.log.debug "Re-configuring %p via deferred config hook." % [ self ]
			config = Configurability.loaded_config
			Configurability.log.debug "Propagating config to %p" % [ self ]
			Configurability.install_config( config, self )
		end
	end

end # module Configurability::DeferredConfig

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
configurability-5.0.0 lib/configurability/deferred_config.rb
configurability-4.2.0 lib/configurability/deferred_config.rb
configurability-4.1.0 lib/configurability/deferred_config.rb
configurability-4.0.0 lib/configurability/deferred_config.rb
configurability-3.4.1 lib/configurability/deferred_config.rb
configurability-3.3.0 lib/configurability/deferred_config.rb
configurability-3.2.0 lib/configurability/deferred_config.rb
configurability-3.2.0.pre20170417124946 lib/configurability/deferred_config.rb
configurability-3.1.2 lib/configurability/deferred_config.rb
configurability-3.1.1 lib/configurability/deferred_config.rb
configurability-3.1.0 lib/configurability/deferred_config.rb
configurability-3.1.0.pre20170103085451 lib/configurability/deferred_config.rb
configurability-3.0.0 lib/configurability/deferred_config.rb
configurability-3.0.0.pre20161130174408 lib/configurability/deferred_config.rb