Class: Parse::Event

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/parse/event.rb,
lib/parse/event/error.rb,
lib/parse/event/app_opened.rb

Direct Known Subclasses

AppOpened, Error

Defined Under Namespace

Classes: AppOpened, Error

Constant Summary collapse

@@event_class_vs_class_table =
{}

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Util

#string_keyed_hash

Constructor Details

#initialize(hash = {}) ⇒ Event

Returns a new instance of Event.



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

def initialize hash={}
  hash = string_keyed_hash hash
  @at = hash.delete 'at'
  @at = ParseDate.parse @at if @at.is_a?(String)
  @dimensions = hash.dup
end

Class Attribute Details

.event_class_nameObject

Returns the value of attribute event_class_name.



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

def event_class_name
  @event_class_name
end

.parse_clientObject

Returns the value of attribute parse_client.



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

def parse_client
  @parse_client
end

Instance Attribute Details

#atObject

Returns the value of attribute at.



46
47
48
# File 'lib/parse/event.rb', line 46

def at
  @at
end

#dimensionsObject

Returns the value of attribute dimensions.



46
47
48
# File 'lib/parse/event.rb', line 46

def dimensions
  @dimensions
end

Class Method Details

.create(event_class_name, mod = ::Object) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/parse/event.rb', line 20

def create event_class_name, mod=::Object
  raise 'already defined' if mod.const_defined? event_class_name

  if RESERVED_EVENT_CLASS.has_key? event_class_name.to_s
    eval RESERVED_EVENT_CLASS[event_class_name.to_s]
  else
    klass = Class.new(Parse::Event)
    klass.event_class_name = event_class_name.to_sym
    mod.const_set event_class_name, klass
    register_event_class klass
  end
end

.fire(hash = {}) ⇒ Object



41
42
43
# File 'lib/parse/event.rb', line 41

def fire hash={}
  self.new(hash).fire
end

.register_event_class(event_class) ⇒ Object



16
17
18
# File 'lib/parse/event.rb', line 16

def register_event_class event_class
  @@event_class_vs_class_table[event_class.event_class_name] = event_class
end

Instance Method Details

#event_class_nameObject



65
66
67
# File 'lib/parse/event.rb', line 65

def event_class_name
  self.class.event_class_name
end

#fireObject



55
56
57
58
59
# File 'lib/parse/event.rb', line 55

def fire
  body = @dimensions
  body['at'] = @at if @at
  parse_client.call_api :post, "events/#{event_class_name}", body.to_json
end

#parse_clientObject



61
62
63
# File 'lib/parse/event.rb', line 61

def parse_client
  self.class.parse_client
end