Class: RememberTheRuby::Entity

Inherits:
Hash
  • Object
show all
Defined in:
lib/remember-the-ruby/entity.rb

Direct Known Subclasses

List, Tag, Task, TaskOccurrence

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(transport, data = {}) ⇒ Entity

Returns a new instance of Entity.



4
5
6
7
# File 'lib/remember-the-ruby/entity.rb', line 4

def initialize(transport, data={})
  @transport = transport
  self.merge!(data)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name) ⇒ Object



21
22
23
# File 'lib/remember-the-ruby/entity.rb', line 21

def method_missing(method_name)
  self[method_name]
end

Class Method Details

.from_element(transport, element) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/remember-the-ruby/entity.rb', line 9

def self.from_element(transport, element)
  data = element.attributes.keys.inject({}) do |memo, key|
    memo[key] = element.attributes[key]
    memo
  end
  self.new(transport, data)
end

.list_from_elements(transport, rsp, element) ⇒ Object



17
18
19
# File 'lib/remember-the-ruby/entity.rb', line 17

def self.list_from_elements(transport, rsp, element)
  EntityList.from_element(transport, self, rsp, element)
end

Instance Method Details

#[](key) ⇒ Object



37
38
39
# File 'lib/remember-the-ruby/entity.rb', line 37

def [](key)
  regular_reader(key.to_s)
end

#[]=(key, value) ⇒ Object



41
42
43
# File 'lib/remember-the-ruby/entity.rb', line 41

def []=(key, value)
  regular_writer(key.to_s, value)
end

#hydrate_from(&blk) ⇒ Object



25
26
27
28
29
30
# File 'lib/remember-the-ruby/entity.rb', line 25

def hydrate_from(&blk)
  entity = yield blk
  entity.each do |key, value|
    self[key] = value
  end
end

#original_lookupObject



45
46
47
# File 'lib/remember-the-ruby/entity.rb', line 45

def [](key)
  regular_reader(key.to_s)
end

#regular_readerObject



32
# File 'lib/remember-the-ruby/entity.rb', line 32

alias_method :regular_reader, :[]

#regular_writerObject



33
# File 'lib/remember-the-ruby/entity.rb', line 33

alias_method :regular_writer, :[]=