Sha256: d9ea9c99b31dc97bbe60cf4e4c517f1e390f2f851d8c1275673aae4501697586

Contents?: true

Size: 1.4 KB

Versions: 1

Compression:

Stored size: 1.4 KB

Contents

# Author::    Nicolas Pouillard  <ertai@lrde.epita.fr>.
# Copyright:: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
# License::   GNU General Public License (GPL).
# Revision::  $Id: factory.rb 221 2005-05-09 12:40:57Z ertai $

module Commands

  module Datas
    
    class Factory < Data

      attr_accessor :command_data_class

      def initialize
        @command_data_class = Data
      end

      def new_command_data ( *a, &b )
        data = @command_data_class.new(*a, &b)
        instance_variables.each do |var|
          next if var =~ /command_data_class/
          data.send(var[1..-1] + '=', instance_variable_get(var))
        end
        data
      end

      alias :create :new_command_data

    end # class Factory



    if $0 == __FILE__
      require 'test/unit'

      class FactoryTest < Test::Unit::TestCase

        def setup
          assert_nothing_raised { @fa = Factory.new }
        end

        def test_0_initialize
        end

        def test_new_command_data
          assert_nothing_raised do
            assert_kind_of(Data, @fa.create)
            assert_kind_of(Data, @fa.new_command_data)
          end
        end

        def test_simple
          assert_nothing_raised do
            @fa.pid = 42
            @data = @fa.create
          end
          assert_equal(42, @data.pid)
        end

      end # class FactoryTest

    end

  end # module Datas

end # module Commands

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vcs-0.2.148 ruby_ex/commands/datas/factory.rb