kioku 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +3 -2
- data/VERSION +1 -1
- data/kioku.gemspec +12 -11
- data/lib/kioku.rb +29 -13
- data/test/sample.yml +3 -1
- data/test/test_gui.rb +22 -0
- data/test/test_kioku_basics.rb +24 -8
- metadata +16 -14
data/Rakefile
CHANGED
@@ -17,8 +17,9 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.name = "kioku"
|
18
18
|
gem.homepage = "http://github.com/Anonyfox/kioku"
|
19
19
|
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{A leightweight key-value store solution.}
|
21
|
-
gem.description = %Q{
|
20
|
+
gem.summary = %Q{A leightweight key-value store solution written in pure Ruby.}
|
21
|
+
gem.description = %Q{A leightweight key-value store solution written in pure Ruby.
|
22
|
+
See the Homepage for more Informations!}
|
22
23
|
gem.email = "Fox56@gmx.de"
|
23
24
|
gem.authors = ["Maximilian Stroh"]
|
24
25
|
# dependencies defined in Gemfile
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/kioku.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0.
|
7
|
+
s.name = "kioku"
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Maximilian Stroh"]
|
12
|
+
s.date = "2012-01-12"
|
13
|
+
s.description = "A leightweight key-value store solution written in pure Ruby.\n See the Homepage for more Informations!"
|
14
|
+
s.email = "Fox56@gmx.de"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -29,13 +29,14 @@ Gem::Specification.new do |s|
|
|
29
29
|
"test/bindata.bz2",
|
30
30
|
"test/helper.rb",
|
31
31
|
"test/sample.yml",
|
32
|
+
"test/test_gui.rb",
|
32
33
|
"test/test_kioku_basics.rb"
|
33
34
|
]
|
34
|
-
s.homepage =
|
35
|
-
s.licenses = [
|
36
|
-
s.require_paths = [
|
37
|
-
s.rubygems_version =
|
38
|
-
s.summary =
|
35
|
+
s.homepage = "http://github.com/Anonyfox/kioku"
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = "1.8.10"
|
39
|
+
s.summary = "A leightweight key-value store solution written in pure Ruby."
|
39
40
|
|
40
41
|
if s.respond_to? :specification_version then
|
41
42
|
s.specification_version = 3
|
data/lib/kioku.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#encoding: utf-8
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
-
require 'profile'
|
4
|
+
#require 'profile'
|
5
5
|
|
6
6
|
class Kioku
|
7
7
|
|
@@ -42,23 +42,31 @@ class Kioku
|
|
42
42
|
data
|
43
43
|
end
|
44
44
|
|
45
|
+
# remove all datasets from the database
|
45
46
|
def clear
|
46
47
|
@data_base = {}
|
47
48
|
update_database
|
48
49
|
end
|
49
50
|
|
51
|
+
# deletes the current database file and locks the database-object
|
52
|
+
# so it can't be used anymore
|
50
53
|
def destroy
|
51
54
|
File.delete @filepath
|
52
55
|
self.freeze
|
53
56
|
end
|
54
57
|
|
55
|
-
|
56
|
-
|
58
|
+
# returns all keys which are actually in the database
|
59
|
+
def all
|
60
|
+
@data_base.keys.dup || []
|
57
61
|
end
|
58
62
|
|
59
|
-
|
60
|
-
|
61
|
-
|
63
|
+
# returns all keys in the database that matches the given pattern-string
|
64
|
+
def search pattern
|
65
|
+
results = all.map {|key|
|
66
|
+
key if key.to_s =~ /#{pattern}/i
|
67
|
+
}
|
68
|
+
results.delete nil
|
69
|
+
results
|
62
70
|
end
|
63
71
|
|
64
72
|
private
|
@@ -68,10 +76,6 @@ private
|
|
68
76
|
f = File.open @filepath, 'r'
|
69
77
|
@data_base = YAML.load_file @filepath
|
70
78
|
f.close
|
71
|
-
|
72
|
-
#f = File.open @filepath, 'rb'
|
73
|
-
#@data_base = Marshal.load f.read
|
74
|
-
#f.close
|
75
79
|
else
|
76
80
|
f = File.new @filepath, 'wb'
|
77
81
|
f.close
|
@@ -82,10 +86,22 @@ private
|
|
82
86
|
f = File.new @filepath, 'w'
|
83
87
|
f << @data_base.to_yaml
|
84
88
|
f.close
|
89
|
+
end
|
85
90
|
|
86
|
-
|
87
|
-
|
88
|
-
|
91
|
+
#############################################
|
92
|
+
### other serialization formats
|
93
|
+
#############################################
|
94
|
+
|
95
|
+
def init_database_marshal
|
96
|
+
f = File.open @filepath, 'rb'
|
97
|
+
@data_base = Marshal.load f.read
|
98
|
+
f.close
|
99
|
+
end
|
100
|
+
|
101
|
+
def update_database_marshal
|
102
|
+
f = File.new @filepath, 'wb'
|
103
|
+
f << Marshal.dump(@data_base)
|
104
|
+
f.close
|
89
105
|
end
|
90
106
|
|
91
107
|
end
|
data/test/sample.yml
CHANGED
data/test/test_gui.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require './helper'
|
4
|
+
|
5
|
+
Shoes.app do
|
6
|
+
stack do
|
7
|
+
|
8
|
+
# input line
|
9
|
+
flow do
|
10
|
+
@in_key = edit_line
|
11
|
+
@in_val = edit_line
|
12
|
+
@in_go = button("add")
|
13
|
+
end
|
14
|
+
|
15
|
+
# elements
|
16
|
+
@k = Kioku.new "./sample.yml"
|
17
|
+
@k.get_all.each do {|key|
|
18
|
+
para "#{key}: #{@k[key]}", size: 9
|
19
|
+
}
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/test/test_kioku_basics.rb
CHANGED
@@ -5,11 +5,11 @@ require_relative 'helper'
|
|
5
5
|
class TestKiokuBasics < Test::Unit::TestCase
|
6
6
|
|
7
7
|
def setup
|
8
|
-
|
8
|
+
require 'pp'
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_general_working_and_syntax
|
12
|
-
@k.
|
12
|
+
@k = Kioku.new "sample.yml"
|
13
13
|
@k["entry"] = "a sample"
|
14
14
|
assert_equal( "a sample", @k["entry"] )
|
15
15
|
@k.delete "entry"
|
@@ -17,27 +17,43 @@ class TestKiokuBasics < Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_general_serialization
|
20
|
+
@k = Kioku.new "sample.yml"
|
20
21
|
@k["entry"] = "This!"
|
21
|
-
|
22
|
-
assert_equal( @k["entry"], tmp["entry"] )
|
23
|
-
tmp.destroy
|
22
|
+
assert_equal( @k["entry"], "This!" )
|
24
23
|
end
|
25
24
|
|
26
25
|
def test_umlauts
|
26
|
+
@k = Kioku.new "sample.yml"
|
27
27
|
@k["höhö"] = "süß"
|
28
28
|
assert_equal( @k["höhö"], "süß" )
|
29
29
|
end
|
30
30
|
|
31
31
|
def test_object_data
|
32
|
+
@k = Kioku.new "sample.yml"
|
32
33
|
@k["obj"] = [1,2,4]
|
33
34
|
assert_equal( @k["obj"], [1,2,4] )
|
34
35
|
end
|
35
36
|
|
36
37
|
def test_binary_data
|
38
|
+
@k = Kioku.new "sample.yml"
|
37
39
|
f = File.open("bindata.bz2","rb").read
|
38
40
|
@k["bin"] = f.dup
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
assert_equal( @k["bin"], f )
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_all
|
45
|
+
@k = Kioku.new "sample.yml"
|
46
|
+
@k["entry"] = "a sample"
|
47
|
+
@k["höhö"] = "süß"
|
48
|
+
@k["obj"] = [1,2,4]
|
49
|
+
assert_equal( @k.all.sort, ["entry","höhö","obj","bin"].sort)
|
50
|
+
#pp @k
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_search
|
54
|
+
@k = Kioku.new "sample.yml"
|
55
|
+
assert_equal( @k.search("obj"), ["obj"] )
|
56
|
+
assert_equal( @k.search("bin"), ["bin"] )
|
57
|
+
assert_equal( @k.search("höhö"), ["höhö"])
|
42
58
|
end
|
43
59
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kioku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-12 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yard
|
16
|
-
requirement: &
|
16
|
+
requirement: &22231540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.6.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *22231540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &22230560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *22230560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &22229800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.6.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *22229800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rcov
|
49
|
-
requirement: &
|
49
|
+
requirement: &22228960 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,8 +54,9 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
description:
|
57
|
+
version_requirements: *22228960
|
58
|
+
description: ! "A leightweight key-value store solution written in pure Ruby.\n See
|
59
|
+
the Homepage for more Informations!"
|
59
60
|
email: Fox56@gmx.de
|
60
61
|
executables: []
|
61
62
|
extensions: []
|
@@ -75,6 +76,7 @@ files:
|
|
75
76
|
- test/bindata.bz2
|
76
77
|
- test/helper.rb
|
77
78
|
- test/sample.yml
|
79
|
+
- test/test_gui.rb
|
78
80
|
- test/test_kioku_basics.rb
|
79
81
|
homepage: http://github.com/Anonyfox/kioku
|
80
82
|
licenses:
|
@@ -91,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
93
|
version: '0'
|
92
94
|
segments:
|
93
95
|
- 0
|
94
|
-
hash:
|
96
|
+
hash: 4136768825215228497
|
95
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
98
|
none: false
|
97
99
|
requirements:
|
@@ -100,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
102
|
version: '0'
|
101
103
|
requirements: []
|
102
104
|
rubyforge_project:
|
103
|
-
rubygems_version: 1.8.
|
105
|
+
rubygems_version: 1.8.10
|
104
106
|
signing_key:
|
105
107
|
specification_version: 3
|
106
|
-
summary: A leightweight key-value store solution.
|
108
|
+
summary: A leightweight key-value store solution written in pure Ruby.
|
107
109
|
test_files: []
|