Class: AMON::Metadata

Inherits:
DocumentPart show all
Defined in:
lib/amon/metadata.rb

Overview

TODO:

This doesn’t yet support arbitrarily nested metadata, so you can’t have JSON like so:

"metadata": {
  "foo": {
    "bar": "baz"
  }
}

And then access:

object..foo.bar # => "baz"

However, in the meantime you could do:

object..foo[:bar] # => "baz"

(As the JSON is full parsed into a nested hash.)

Metadata associated with a Device. The metadata section of an AMON document can have an arbitrary number of fields, so this class uses ‘method_missing` to look them up and respond appropriately.

Instance Attribute Summary

Attributes inherited from DocumentPart

#parent

Attributes included from JSONHelper

#json

Instance Method Summary collapse

Methods inherited from DocumentPart

#initialize

Constructor Details

This class inherits a constructor from AMON::DocumentPart

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/amon/metadata.rb', line 26

def method_missing(name, *args, &block)
  if args.empty? && block.nil?
    json[name.to_s]
  else
    raise NoMethodError, "undefined method `#{name}'"
  end
end