Sha256: 85fe4123c3cce837a66745c6d65bcef5ce1fa4c19c314a77ee453d5296deea61

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

module AMEE
  module Data
    class Item < AMEE::Object

      def initialize(data = {})
        @values = data ? data[:values] : []
        @label = data ? data[:label] : []
        super
      end

      attr_reader :values
      attr_reader :label

      def self.get(connection, path)
        # Load data from path
        response = connection.get(path)
        # Parse data from response into hash
        doc = REXML::Document.new(response)
        data = {}
        data[:uid] = REXML::XPath.first(doc, "/Resources/DataItemResource/DataItem/@uid").to_s
        data[:created] = DateTime.parse(REXML::XPath.first(doc, "/Resources/DataItemResource/DataItem/@created").to_s)
        data[:modified] = DateTime.parse(REXML::XPath.first(doc, "/Resources/DataItemResource/DataItem/@modified").to_s)
        data[:name] = REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/Name').text
        data[:path] = REXML::XPath.first(doc, '/Resources/DataItemResource/Path').text
        data[:label] = REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/Label').text
        # Get values
        data[:values] = []
        REXML::XPath.each(doc, '/Resources/DataItemResource/DataItem/ItemValues/ItemValue') do |value|
          value_data = {}
          value_data[:name] = value.elements['Name'].text
          value_data[:path] = value.elements['Path'].text
          value_data[:value] = value.elements['Value'].text
          value_data[:uid] = value.attributes['uid'].to_s
          data[:values] << value_data
        end
        # Create item object
        item = Item.new(data)
        # Store connection in object for future use
        item.connection = connection
        # Done
        return item
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
Floppy-amee-0.0.2 lib/amee/data_item.rb