Skip to content

Instantly share code, notes, and snippets.

View zdavatz's full-sized avatar
🎯
Focusing

Zeno R.R. Davatz zdavatz

🎯
Focusing
View GitHub Profile
@zdavatz
zdavatz / ODBA - id_server.rb
Created March 14, 2011 10:50
id_server.rb
require 'odba/persistable'
require 'thread'
module ODBA
class IdServer
include Persistable
ODBA_SERIALIZABLE = ['@ids']
ODBA_EXCLUDE_VARS = ['@mutex']
def initialize
@ids = {}
@zdavatz
zdavatz / ODBA - drbwrapper.rb
Created March 14, 2011 13:03
ODBA - drbwrapper.rb
def to_obj(ref)
test = ref
if(test.is_a?(String) || (test = @unsaved[ref]))
DRbWrapper.new(ODBA.cache.fetch(test.to_i))
else
super
end
rescue RuntimeError => e
raise RangeError, e.message
end
@zdavatz
zdavatz / ODBA - storage.rb
Created March 14, 2011 15:40
storage.rb
def update_condition_index(index_name, origin_id, search_terms, target_id)
keys = []
vals = []
search_terms.each { |key, val|
keys.push(key)
vals.push(val)
}
if(target_id)
self.dbi.do <<-SQL, origin_id, target_id, *vals
INSERT INTO #{index_name} (origin_id, target_id, #{keys.join(', ')})
def proc_resolve_search_term # :nodoc:
if(@proc_resolve_search_term.nil?)
src = <<-EOS
Proc.new { |origin|
values = {}
EOS
@resolve_search_term.each { |name, info|
src << <<-EOS
begin
values.store('#{name}', origin.#{info['resolve']})
@zdavatz
zdavatz / ODBA - persistable.rb
Created March 15, 2011 10:18
persistable.rb
# A Persistable instance can be _prefetchable_. This means that the object
# can be loaded at startup by calling ODBA.cache.prefetch, and that it will
# never expire from the Cache. The prefetch status can be controlled per
# instance by setting the instance variable @odba_prefetch, and per class by
# overriding the module constant ODBA_PREFETCH
def odba_prefetch?
@odba_prefetch \
|| (defined?(self::class::ODBA_PREFETCH) && self::class::ODBA_PREFETCH)
end
@zdavatz
zdavatz / ODBA - persistable.rb
Created March 15, 2011 14:53
persistable.rb
def odba_target_ids
ids = super
self.each { |value|
if(value.is_a?(ODBA::Persistable))
ids.push(value.odba_id)
end
}
ids.uniq
end
@zdavatz
zdavatz / ODBA - persistable.rb
Created March 16, 2011 07:58
persistable.rb
class Object # :nodoc: all
def odba_id
end
def odba_instance
self
end
def odba_isolated_stub
self
end
def metaclass; class << self; self; end; end
@zdavatz
zdavatz / ODBA - persistable.rb
Created March 16, 2011 16:50
persistable.rb
def ==(other) # :nodoc:
super(other.odba_instance)
end
@zdavatz
zdavatz / ODBA - persistable.rb
Created March 17, 2011 12:32
persistable.rb
||= []
@zdavatz
zdavatz / spreadsheet-patch-fonsan
Created April 8, 2011 07:09
spreadsheet-patch-fonsan
## changes to excel/writer/worksheet.rb by fonsan
module Spreadsheet
module Excel
module Writer
def write_cellblocks row
# BLANK ➜ 6.7
# BOOLERR ➜ 6.10
# INTEGER ➜ 6.56 (BIFF2 only)
# LABEL ➜ 6.59 (BIFF2-BIFF7)