Module: Xively::Base

Defined in:
lib/xively-rb/base.rb,
lib/xively-rb/base/instance_methods.rb

Overview

Provide an interface for your model objects by extending this module: extend Xively::Base

This provides the following configuration class method: is_xively:

- specifies that this model represents all or part of a Xively feed

Defined Under Namespace

Modules: InstanceMethods

Instance Method Summary collapse

Instance Method Details

#is_xively(klass, options = {}) ⇒ Object

Provides methods for converting between the different Xively API data formats An example for a model representing a Xively feed:

is_xively :feed

A datastream

is_xively :datastream

To specify custom field mappings or map methods onto a field

is_xively :feed, {:title => :my_custom_instance_method, :status => :determine_feed_state}


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/xively-rb/base.rb', line 25

def is_xively(klass, options = {})
  @options = options
  case klass
  when :feed
    @xively_class = Xively::Feed
  when :datastream
    @xively_class = Xively::Datastream
  when :datapoint
    @xively_class = Xively::Datapoint
  else
    @xively_class = nil
  end

  class << self
    def xively_mappings
      @options
    end

    def xively_class
      @xively_class
    end
  end

  send :include, Xively::Base::InstanceMethods
end