Sha256: 832d4b0952be4e695dea422c57b5fbe625a0b4f3ae4d38ced29b25f4ad0e1b92
Contents?: true
Size: 623 Bytes
Versions: 4
Compression:
Stored size: 623 Bytes
Contents
module Domain module DomainFactory def self.factor(c_methods = [], i_methods = []) i_methods, c_methods = Array(i_methods), Array(c_methods).unshift(Domain) Module.new{ # include all class methods first c_methods.each{|c_m| include(c_m) } # Ensure that classes that are extended will include all instance methods define_singleton_method(:extend_object) do |obj| if obj.is_a?(Class) obj.module_eval{ i_methods.each{|i_m| include(i_m) } } end super(obj) end } end end # module DomainFactory end # module Domain
Version data entries
4 entries across 4 versions & 1 rubygems