More Related Content Similar to Key Value Store For Local Environment (20) Key Value Store For Local Environment1. “Good for you. Good for me. Mmm, good.”
Key-Value Store
For Local Environment
誰でも使える技術で使える
ローカル環境向け
Key-Value Store
こしば としあき
7. about me
• 最近の趣味
– プロジェクトを設計すること
• 昼の仕事
– ソフトウェア開発
• 金融業/運輸業 適用業務システム開発
–IBM COBOL on CICS
–MFCOBOL on MTP
–RPG on AS/400
• その他、Web、開発ツール開発
– 社員の提案・不満の収集窓口
10. outline
Ruby Script User
This KVS Rich Client(GUI)
Entity Layer
local file
14. design
This KVS
Rich Client(GUI)
API
<<Entity>>
middle ware
local file
16. implement
concealed
This KVS Class Internal processing
XLS_KVS
<<Presentation>>
Win32OLE
Microsoft Excel
COM API
<<Entity>>
Microsoft Excel
Excel Workbook
22. store key-value – find(1)
YAML.load(
@app.WorksheetFunction.VLookup
(YAML.dump(key),
@sheet.Range(KEYVALUE_COLS), 2, false ))
23. store key-value – find(2)
@sheet.range(KEY_COLS).Find(YAML.dump(key),
@app.ActiveCell,
-4163, #xlValues,
1, #xlWhole,
1, #xlByRows,
1, #xlNext,
true,
false)
24. store key-value – insert
get tail row offset in worksheet
max_row =
@sheet.UsedRange.Row +
@sheet.UsedRange.Rows.count
@sheet.range("A#{max_row}").value =
YAML.dump(key)
@sheet.range("B#{max_row}").value =
YAML.dump(value)
25. store key-value – update
range = find(key)
range.offset(0, 1).value = YAML.dump(value)
26. store key-value - delete
target_row = find(key).Row
sheet.Range("#{target_row}:#{target_row}").Delet
e (-4162)
28. on memory running
• if call XLS_KVS#new
–create XLS_KVS::Hash instance
–lunch Microsoft Excel
• if call XLS_KVS::Hash#Close
–save&close Excel Workbook
–unload Microsoft Excel
30. edit stored values
kvs = XLS_KVS.load(@xls_file, 1, false)
kvs.store(1, [Time.now, 'new running', 19])
kvs.store(2, [Time.now, 'I am Koshiba', 9])
kvs.store(3, self)
31. edit stored values
kvs = XLS_KVS.load(@xls_file, 1, false)
kvs.store(1, [Time.now, 'new running', 19])
kvs.store(2, [Time.now, 'I am Koshiba', 9])
kvs.store(3, self)
edit directly!
32. edit stored values
kvs = XLS_KVS.load(@xls_file, 1, false)
kvs.store(1, [Time.now, 'new running', 19])
Excel is useful
kvs.store(2, [Time.now, 'I am Koshiba', 9])
for many people!
kvs.store(3, self)
edit directly!
engineers,
business persons
students,
my mother, etc
37. summary
• Ruby is programmer's friend
• Excel is many people's friend
•Ruby × Excel =
everyone's friend