Sha256: beaeaf1d176104ffd8da324626f2adcc10749172b11e2bad7317d7682b8fcb97
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
module Botfly class CallbackContext def initialize(caller, params) setup_params(params) @caller = caller end def method_missing(name, *args) @caller.send(name,*args) if name.to_s.scan(/^setup/).empty? end private # OK, so. Get the instance's eigenclass, then, call the private method define_method - thus created the method called #{name} that returns value. Basically attr_reader but for any generic variable. def expose(name, value) (class<<self;self;end).send(:define_method,name,proc{value}) end def setup_params(params) params.each do |name,value| send(:"setup_#{name}", value) end end def setup_roster_item(roster_item) expose(:roster_item, roster_item) end def setup_message(message) expose(:message, message) expose(:body, message.body) expose(:chat_state, message.chat_state) expose(:subject, message.subject) expose(:type, message.type) expose(:from, message.from) expose(:to, message.to) end def setup_presence(presence, pre = '') expose(:"#{pre}presence", presence) expose(:"#{pre}from", presence.from) expose(:"#{pre}show", presence.show) expose(:"#{pre}priority", presence.priority) expose(:"#{pre}status", presence.status) expose(:"#{pre}type", presence.type) end def setup_old_presence(presence); setup_presence(presence, 'old_') end def setup_time(time); expose(:time, time) end def setup_nick(nick); expose(:from, nick); end def setup_text(text); expose(:text, text); expose(:body, text); end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
botfly-0.3.6 | lib/botfly/callback_context.rb |
botfly-0.3.5 | lib/botfly/callback_context.rb |
botfly-0.3.4 | lib/botfly/callback_context.rb |