Method: EmailObject#to_hash

Defined in:
lib/email_api/email/data/email_object.rb

#to_hashObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/email_api/email/data/email_object.rb', line 24

def to_hash
  hash = {}
  instance_variables.each do |var|
    name     = var.to_s.delete('@')
    value    = instance_variable_get(var)
    val_hash = value.to_hash if value.respond_to?(:to_hash)

    # Array doesn't implicitly convert to hash automatically
    if val_hash.nil? && value.is_a?(Array)
      val_hash = []
      value.each do |val|
        val_hash.push val.to_hash if val.respond_to?(:to_hash)
      end
    end

    hash[name] = val_hash.nil? ? value : val_hash
  end
  hash
end