Class: Termtter::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/termtter/event.rb

Direct Known Subclasses

Client::SearchEvent

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, params = {}) ⇒ Event

Returns a new instance of Event.

Raises:

  • (TypeError)


7
8
9
10
11
12
# File 'lib/termtter/event.rb', line 7

def initialize(name, params = {})
  raise TypeError unless name.kind_of? Symbol
  raise TypeError unless params.kind_of? Hash
  @name = name
  @params = ActiveRubytter.new(params)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object



17
18
19
20
21
# File 'lib/termtter/event.rb', line 17

def method_missing(name, *args)
  @name.__send__(name, *args)
rescue NoMethodError
  @params.__send__(name, *args)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



14
15
16
# File 'lib/termtter/event.rb', line 14

def name
  @name
end

Instance Method Details

#==(b) ⇒ Object Also known as: ===



44
45
46
# File 'lib/termtter/event.rb', line 44

def ==(b)
  self.eql?(b)
end

#[](name) ⇒ Object



23
24
25
# File 'lib/termtter/event.rb', line 23

def [](name)
  @params.__send__(:[], name)
end

#eql?(b) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
# File 'lib/termtter/event.rb', line 48

def eql?(b)
  if b.kind_of? Event
    @name == b.name
  else
    @name == b
  end
end

#has_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/termtter/event.rb', line 31

def has_key?(key)
  @params.to_hash.has_key?(key)
end

#hashObject



27
28
29
# File 'lib/termtter/event.rb', line 27

def hash
  @name.hash
end

#set_param(key, value) ⇒ Object Also known as: []=



35
36
37
38
39
40
# File 'lib/termtter/event.rb', line 35

def set_param(key, value)
  data = @params.to_hash
  data[key] = value
  @params.attributes = data
  value
end