Sha256: f0fc49999605f83d9db0d5dc41ffb110ced8341c436ba1bed13b495eeb5a5598
Contents?: true
Size: 1.77 KB
Versions: 5
Compression:
Stored size: 1.77 KB
Contents
require 'fox12' # Enumeration def enum(start, count) (start...(start+count)).to_a end module Responder # Generates identifiers as class constants. Originally submitted by # Sean O'Halpin, slightly modified by Lyle. def identifier(*ids) ids << :ID_LAST base = self.class.superclass::ID_LAST vals = enum(base, ids.size) ids.each_index do |i| unless self.class.const_defined?(ids[i]) self.class.class_eval("#{ids[i].id2name} = #{vals[i]}") end end end # Return the array of (selector -> func) associations def messageMap unless instance_variables.include? "@assocs" @assocs = [] end @assocs end # Look up array index of this message map entry def assocIndex(lo, hi) currIndex = -1 assocs = messageMap assocs.each_index do |i| if assocs[i][0] == lo && assocs[i][1] == hi currIndex = i end end currIndex end # Add new or replace existing map entry def addMapEntry(lo, hi, func) func = func.intern if func.is_a? String currIndex = assocIndex(lo, hi) if currIndex < 0 messageMap.push([lo, hi, func]) else messageMap[currIndex] = [lo, hi, func] end end # Define range of function types def FXMAPTYPES(typelo, typehi, func) addMapEntry(Fox.MKUINT(Fox::MINKEY, typelo), Fox.MKUINT(Fox::MAXKEY, typehi), func) end # Define one function type def FXMAPTYPE(type, func) addMapEntry(Fox.MKUINT(Fox::MINKEY, type), Fox.MKUINT(Fox::MAXKEY, type), func) end # Define range of functions def FXMAPFUNCS(type, keylo, keyhi, func) addMapEntry(Fox.MKUINT(keylo, type), Fox.MKUINT(keyhi, type), func) end # Define one function def FXMAPFUNC(type, id, func) addMapEntry(Fox.MKUINT(id, type), Fox.MKUINT(id, type), func) end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
fxruby-1.2.2 | lib/fox12/responder.rb |
fxruby-1.2.3 | lib/fox12/responder.rb |
fxruby-1.2.4 | lib/fox12/responder.rb |
fxruby-1.2.5 | lib/fox12/responder.rb |
fxruby-1.2.6 | lib/fox12/responder.rb |