Sha256: d58a1ccb5d5ea3c432aa946942d3846851d1e0b0d91d97d87db79731bd42984d

Contents?: true

Size: 945 Bytes

Versions: 9

Compression:

Stored size: 945 Bytes

Contents

# -*- coding: utf-8; -*-
#
# module io/plugin_pstore
# 	default plugin storage implemented by PStore
#
require 'pstore'

module TDiary
	module IO
		module PluginPStore
			# returning storage object
			def plugin_open(conf)
				storage = Pathname(conf.data_path) + 'plugin'
				storage.mkpath
				return storage
			end

			def plugin_close(storage_object)
			end

			def plugin_transaction(storage_object, plugin_name)
				PStore.new(storage_object + "#{plugin_name}.db").transaction do |db|
					# define methods of plugin storage interface
					# PStore has 'delete' method as same function
					def db.get(key)
						self[key]
					end
					def db.set(key, value)
						self[key] = value
					end
					# def db.delete( key )
					#
					# end
					def db.keys
						self.roots
					end

					yield db
				end
			end
		end
	end
end

# Local Variables:
# mode: ruby
# indent-tabs-mode: t
# tab-width: 3
# ruby-indent-level: 3
# End:
# vim: ts=3

Version data entries

9 entries across 8 versions & 1 rubygems

Version Path
tdiary-5.0.0 lib/tdiary/io/plugin_pstore.rb
tdiary-4.2.1 vendor/bundle/ruby/2.3.0/gems/tdiary-4.2.0/lib/tdiary/io/plugin_pstore.rb
tdiary-4.2.1 lib/tdiary/io/plugin_pstore.rb
tdiary-4.2.0 lib/tdiary/io/plugin_pstore.rb
tdiary-4.1.3 lib/tdiary/io/plugin_pstore.rb
tdiary-4.1.2 lib/tdiary/io/plugin_pstore.rb
tdiary-4.1.1 lib/tdiary/io/plugin_pstore.rb
tdiary-4.1.0 lib/tdiary/io/plugin_pstore.rb
tdiary-4.1.0.20141126 lib/tdiary/io/plugin_pstore.rb