Class AWS::Core::Data
In: lib/aws/core/data.rb
Parent: Object

Data is a light wrapper around a Ruby hash that provides method missing access to the hash contents.

## Method Missing Access

You can access hash content with methods if their keys are symbols.

    data = AWS::Core::Data.new({ :a => 1, :b => 2, :c => true })
    data.a #=> 1
    data.b #=> 2
    data.c #=> true
    data.d #=> raises NoMethodError

## Boolean Methods

Given the structure above you can also use question-mark methods.

    data.c? #=> true
    data.d? #=> raises NoMethodError

## Nested Hashes

If the data contains nested hashes you can chain methods into the structure.

    data = AWS::Core::Data.new(:a => { :b => { :c => 'abc' }})
    data.a.b.c #=> 'abc'

## Nested Arrays

Arrays are wrapped in {Data::List} objects. They ensure any data returned is correctly wrapped so you can continue using method-missing access.

    data = AWS::Core::Data.new(
     :people => [
       {:name => 'john'},
       {:name => 'jane'},
    ]})

    data.people[0].name #=> 'john'
    data.people[1].name #=> 'jane'

    data.people.map(&:name) #=> ['john','jane']

Methods

Included Modules

MethodMissingProxy

Classes and Modules

Module AWS::Core::Data::MethodMissingProxy
Class AWS::Core::Data::List

Public Class methods

@param [Hash] data The ruby hash of data you need wrapped.

Protected Class methods

Given a hash, this method returns a {Data} object. Given an Array, this method returns a {Data::List} object. Everything else is returned as is.

@param [Object] value The value to conditionally wrap.

@return [Data,Data::List,Object] Wraps hashes and lists with

  Data and List objects, all other objects are returned as
  is.

Public Instance methods

Returns an inspection string from the wrapped data.

    data = AWS::Core::Data.new({ :a => 1, :b => 2, :c => true })
    data.inspect #=> '{:a=>1, :b=>2, :c=>true}'

@return [String]

is_a?(klass)

Alias for kind_of?

@api private

@param [String,Symbol] method_name @return [Boolean] Returns true if this data object will

  respond to the given method name.

@return [Array]

to_ary()

Alias for to_a

to_h()

Alias for to_hash

@return [Hash] Returns contents of this Data object as a raw hash.

Protected Instance methods

[Validate]