Module: PromiscuousStruct

Included in:
TwitterGetter::Tweet, TwitterGetter::User
Defined in:
lib/twitter_getter/promiscuous_struct.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/twitter_getter/promiscuous_struct.rb', line 26

def method_missing(m)
  if val = get_val(m)
    return val
  elsif @attributes.respond_to?(m)
    return @attributes.send(m)
  else
    nil
  end
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



2
3
4
# File 'lib/twitter_getter/promiscuous_struct.rb', line 2

def attributes
  @attributes
end

Instance Method Details

#[](a) ⇒ Object



17
18
19
# File 'lib/twitter_getter/promiscuous_struct.rb', line 17

def [](a)
 get_val(a)
end

#get_val(a) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/twitter_getter/promiscuous_struct.rb', line 8

def get_val(a)
  val = @attributes[a] || @attributes[a.to_s] || @attributes[a.to_sym]
  if val.is_a?(Hash)
    self.class.new(val)
  else
    val
  end
end

#idObject

an existing but depricated method we need to overide



22
23
24
# File 'lib/twitter_getter/promiscuous_struct.rb', line 22

def id
  get_val(:id)
end

#initialize(h) ⇒ Object



4
5
6
# File 'lib/twitter_getter/promiscuous_struct.rb', line 4

def initialize(h)
  @attributes = h
end