no :name in LWES::Event#to_hash for subclasses
[lwes-ruby.git] / examples / demo.rb
blobedfff2b2fff98973ccbc20b1f7d4c8b54d88cdc0
1 require 'lwes'
3 module MyApp
4 end
6 # create an Emitter which may be used for the lifetime of your process
7 emitter = LWES::Emitter.new(:address => '224.1.1.11',
8                             :port => 12345,
9                             :heartbeat => 30, # nil to disable
10                             :ttl => 1) # nil for no ttl
12 # parse your ESF file at startup, the example below assumes you
13 # have "Event1" and "Event2" defined in your ESF file:
14 type_db = LWES::TypeDB.new("my_events.esf")
16 # create classes to use, by default and to encourage DRY-ness,
17 # we map each event in the ESF file to a class
18 # Optionally, you may specify :parent => module/namespace
19 type_db.create_classes! :parent => MyApp
21 # inside your application, you may now do this to slowly build up
22 # fields for the event
23 my_event = MyApp::Event1.new
24 my_event.started = Time.now.to_i
25 my_event.remote_addr = "192.168.0.1"
26 # ...do a lot of stuff here in between...
27 # my_event.field1 = value1
28 # my_event.field2 = value2
29 # my_event.field3 = value3
30 my_event.finished = Time.now.to_i
31 emitter.emit my_event
33 # Alternatively, if you know ahead of time all the fields you want to
34 # set for an event, you can emit an event in one step:
36 emitter.emit MyApp::Event2, :field1 => "HI1", :field2 => "HI2"# ...