Sha256: 42b2369fb01fa1442d1f008fd0f6d613b95108a7792bcc88b17b5d6d29f938ff

Contents?: true

Size: 798 Bytes

Versions: 2

Compression:

Stored size: 798 Bytes

Contents

class ZapiSession

  def initialize session_hash:
    _generate hash: session_hash
  end

  def _generate hash:
    return nil unless hash.is_a? Hash
    hash.each do |k,v|
      self.instance_variable_set("@#{k}", v)  ## create and initialize an instance variable for this key/value pair
      self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})  ## create the getter that returns the instance variable
      self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})  ## create the setter that sets the instance variable
    end
    return self
  end

  def to_h
    hash = {}
    self.instance_variables.each do |var|
      sym = var.to_s.delete("@").to_sym
      hash[sym] = self.instance_variable_get(var)
    end

    hash
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zaui_zapi-0.0.2 lib/zapi_session.rb
zaui_zapi-0.0.1 lib/zapi_session.rb