Module: Seabright::Storage::ClassMethods
- Defined in:
- lib/redis_object/storage.rb
Instance Method Summary collapse
- #adapter ⇒ Object
- #adapters ⇒ Object
- #config(id = store_name) ⇒ Object
- #configs ⇒ Object
- #configure_store(conf, id = store_name, *ids) ⇒ Object
- #dump_stores_to_files(path) ⇒ Object
- #reconnect! ⇒ Object
- #restore_stores_from_files(path) ⇒ Object
- #set_storage(adp = adapter) ⇒ Object
- #store(id = store_name) ⇒ Object
- #store_name ⇒ Object
- #stores ⇒ Object
- #use_store(id) ⇒ Object
Instance Method Details
#adapter ⇒ Object
45 46 47 |
# File 'lib/redis_object/storage.rb', line 45 def adapter @adapter ||= config[:adapter].to_sym || :Redis end |
#adapters ⇒ Object
41 42 43 |
# File 'lib/redis_object/storage.rb', line 41 def adapters @@adapters ||= {} end |
#config(id = store_name) ⇒ Object
57 58 59 |
# File 'lib/redis_object/storage.rb', line 57 def config(id=store_name) configs[id] end |
#configs ⇒ Object
53 54 55 |
# File 'lib/redis_object/storage.rb', line 53 def configs @@conf ||= {} end |
#configure_store(conf, id = store_name, *ids) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/redis_object/storage.rb', line 22 def configure_store(conf,id=store_name,*ids) configs[id] = conf ids.each do |i| configs[i] = conf end store(id) end |
#dump_stores_to_files(path) ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/redis_object/storage.rb', line 65 def dump_stores_to_files(path) raise "Directory does not exist!" unless Dir.exists?(File.dirname(path)) adapters.each do |name,adptr| if adptr.respond_to? :dump_to_file Log.info "Dumping #{name} into #{path}/#{name.to_s}.dump" adptr.dump_to_file("#{path}/#{name.to_s}.dump") end end end |
#reconnect! ⇒ Object
35 36 37 38 39 |
# File 'lib/redis_object/storage.rb', line 35 def reconnect! adapters.each do |k,v| v.reconnect! end end |
#restore_stores_from_files(path) ⇒ Object
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/redis_object/storage.rb', line 75 def restore_stores_from_files(path) raise "Directory does not exist!" unless Dir.exists?(File.dirname(path)) Dir.glob(path + "/*.dump").each do |file| name = file.gsub(/\.[^\.]+$/,'').gsub(/.*\//,'').to_sym if (stor = store(name)) && stor.respond_to?(:restore_from_file) Log.info "Restoring #{name} from #{file}" stor.restore_from_file(file) end end end |
#set_storage(adp = adapter) ⇒ Object
14 15 16 |
# File 'lib/redis_object/storage.rb', line 14 def set_storage(adp=adapter) @adapter = adp end |
#store(id = store_name) ⇒ Object
18 19 20 |
# File 'lib/redis_object/storage.rb', line 18 def store(id=store_name) adapters[id] ||= const_get(adapter).new(config(id)) end |
#store_name ⇒ Object
49 50 51 |
# File 'lib/redis_object/storage.rb', line 49 def store_name @store_name ||= :global end |
#stores ⇒ Object
61 62 63 |
# File 'lib/redis_object/storage.rb', line 61 def stores adapters end |
#use_store(id) ⇒ Object
30 31 32 33 |
# File 'lib/redis_object/storage.rb', line 30 def use_store(id) raise "Cannot use non-existent store: #{id}" unless config(id) @store_name = id.to_sym end |