Sha256: 0c9c336e2452b8220a3b9d56a41b9c912c099aa898fb9e93f22a23a5d0a1376b

Contents?: true

Size: 846 Bytes

Versions: 50

Compression:

Stored size: 846 Bytes

Contents

module DIY #:nodoc:#
  class FactoryDef #:nodoc:
    attr_accessor :name, :target, :class_name, :library
    
    def initialize(opts)
      @name, @target, @library, @auto_require =
        opts[:name], opts[:target], opts[:library], opts[:auto_require]

			@class_name = Infl.camelize(@target)
			@library ||= Infl.underscore(@class_name) if @auto_require
    end
  end
  
	class Context
    def construct_factory(key)
      factory_def = @defs[key]
#      puts "requiring #{factory_def.library}"
      require factory_def.library	if factory_def.library

			big_c = get_class_for_name_with_module_delimeters(factory_def.class_name)

      FactoryFactory.new(big_c)
    end
  end

  class FactoryFactory
    def initialize(clazz)
      @class_to_create = clazz
    end

    def create(*args)
      @class_to_create.new(*args)
    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
ceedling-0.0.14 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.13 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.12 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.8 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.7 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.5 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.4 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.3 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.2 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
ceedling-0.0.1 new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb