Sha256: db6d4a0a493917530a5f0acb74c552b353bdb8fa74c5eeb289016575928c9703

Contents?: true

Size: 781 Bytes

Versions: 19

Compression:

Stored size: 781 Bytes

Contents

class ZapiObject

  def initialize hash:
    _generate hash: 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

19 entries across 19 versions & 1 rubygems

Version Path
zaui_zapi-0.3.1 lib/zapi_object.rb
zaui_zapi-0.3.0 lib/zapi_object.rb
zaui_zapi-0.2.8 lib/zapi_object.rb
zaui_zapi-0.2.7 lib/zapi_object.rb
zaui_zapi-0.2.6 lib/zapi_object.rb
zaui_zapi-0.2.5 lib/zapi_object.rb
zaui_zapi-0.2.4 lib/zapi_object.rb
zaui_zapi-0.2.1 lib/zapi_object.rb
zaui_zapi-0.1.14 lib/zapi_object.rb
zaui_zapi-0.1.13 lib/zapi_object.rb
zaui_zapi-0.1.12 lib/zapi_object.rb
zaui_zapi-0.1.11 lib/zapi_object.rb
zaui_zapi-0.1.9 lib/zapi_object.rb
zaui_zapi-0.1.7 lib/zapi_object.rb
zaui_zapi-0.1.6 lib/zapi_object.rb
zaui_zapi-0.1.5 lib/zapi_object.rb
zaui_zapi-0.1.4 lib/zapi_object.rb
zaui_zapi-0.1.1 lib/zapi_object.rb
zaui_zapi-0.1.0 lib/zapi_object.rb