Sha256: 921087b2892418824c3cbf1f4ca757248eb52c45a3d66b361040c11a77004555

Contents?: true

Size: 941 Bytes

Versions: 4

Compression:

Stored size: 941 Bytes

Contents

module DRbQS
  class Setting
    class Source
      class DataContainer < BasicObject
        attr_accessor :argument
        attr_reader :__data__

        def initialize(array_class)
          @argument = []
          @__data__ = {}
          @__array__ = array_class
        end

        def method_missing(name, *args)
          if args.size > 0
            s = name.to_s
            key = (/=$/ =~ s ? s[0...-1].intern : name.intern)
            @__data__[key] = (@__array__ === args[0] ? args[0] : args)
          else
            @__data__[name]
          end
        end

        def __delete__(name)
          @__data__.delete(name.intern)
        end
      end

      def self.clone_container(obj)
        cl = DRbQS::Setting::Source::DataContainer.new(Array)
        cl.argument = obj.argument.clone
        obj.__data__.each do |key, val|
          cl.__data__[key] = val.clone
        end
        cl
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
drbqs-0.0.19 lib/drbqs/setting/data_container.rb
drbqs-0.0.18 lib/drbqs/setting/data_container.rb
drbqs-0.0.17 lib/drbqs/setting/data_container.rb
drbqs-0.0.16 lib/drbqs/setting/data_container.rb