Sha256: af2b40d69201b7b6427159328ac896889d77276d50388421280af8059b8d862c

Contents?: true

Size: 747 Bytes

Versions: 1

Compression:

Stored size: 747 Bytes

Contents

# Encoding: utf-8

module ChemistryKit
  # representation of the user object for interacting with the system under test
  class Chemist

    attr_reader :key, :type, :data

    def initialize(key, type)
      @key = key.to_s
      @type = type.to_s
      @data = {}
    end

    def data=(data)
      data.each do |key, value|
        send("#{key}=", value)
      end
    end

    # allow this object to be set with arbitrary key value data
    def method_missing(name, *arguments)
      value = arguments[0]
      name = name.to_s
      if name[-1, 1] == '='
        key = name[/(.+)\s?=/, 1]
        @data[key.to_sym] = value unless instance_variables.include? "@#{key}".to_sym
      else
        @data[name.to_sym]
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chemistrykit-3.8.0 lib/chemistrykit/chemist.rb