keyvaluetree 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .idea/
@@ -2,7 +2,7 @@ module KeyValueTree
2
2
 
3
3
  class Hash
4
4
 
5
- def initialize(key=nil, parent = nil, store = KeyValueTree::MemortyStore.new())
5
+ def initialize(store = KeyValueTree::MemoryStore.new(), key=nil, parent = nil)
6
6
  @key = key.to_s
7
7
  @parent = parent
8
8
  @store = store
@@ -11,7 +11,7 @@ module KeyValueTree
11
11
  def [] (key)
12
12
  value = @store.key(key_path_string(key))
13
13
  return value unless value.nil?
14
- return KeyValueTree::Hash.new(key, self, @store)
14
+ return KeyValueTree::Hash.new(@store, key, self)
15
15
  end
16
16
 
17
17
  def []= (key, value)
@@ -71,6 +71,10 @@ module KeyValueTree
71
71
  @store.delete(key_path_string(key.to_s))
72
72
  end
73
73
 
74
+ def keys
75
+ @store.keys_starting_with(key_path_string()).map { |each| each.split(".").first }.uniq
76
+ end
77
+
74
78
  end
75
79
 
76
80
  end
@@ -7,12 +7,12 @@ module KeyValueTree
7
7
  end
8
8
 
9
9
  def delete_keys_start_with(key)
10
- keys_start_with(key.to_s).each do |each|
10
+ keys_starting_with(key.to_s).each do |each|
11
11
  self.basic_delete(each)
12
12
  end
13
13
  end
14
14
 
15
- def keys_start_with(key)
15
+ def keys_starting_with(key)
16
16
  self.keys.select do |sub_key|
17
17
  sub_key.start_with?(key.to_s)
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module KeyValueTree
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/test/hash_test.rb CHANGED
@@ -8,22 +8,22 @@ class HashTest < Test::Unit::TestCase
8
8
  @hash_object ={:a => :b}
9
9
  @array_object = [:a, :b]
10
10
  @store = KeyValueTree::MemoryStore.new()
11
- @root = KeyValueTree::Hash.new(nil, nil, @store)
11
+ @root = KeyValueTree::Hash.new(@store)
12
12
  @key1 = 'key1'
13
13
  @value1 = 'value1'
14
14
  @key2 = 'key2'
15
15
  @value2 = 'key2'
16
16
  end
17
17
 
18
- should "be created from an object" do
18
+ should "create w/o arguments" do
19
19
  root = nil
20
- assert_nothing_raised(Exception) { root = KeyValueTree::Hash.new(@hash_object, nil, @store) }
20
+ assert_nothing_raised(Exception) { root = KeyValueTree::Hash.new(@store) }
21
21
  assert_instance_of(KeyValueTree::Hash, root)
22
22
  end
23
23
 
24
- should "be created from an object with store" do
24
+ should "create with store" do
25
25
  root = nil
26
- assert_nothing_raised(Exception) { root = KeyValueTree::Hash.new(@hash_object, nil, @store) }
26
+ assert_nothing_raised(Exception) { root = KeyValueTree::Hash.new(@store) }
27
27
  assert_instance_of(KeyValueTree::Hash, root)
28
28
  end
29
29
 
@@ -68,8 +68,16 @@ class HashTest < Test::Unit::TestCase
68
68
 
69
69
  @root.delete(:two)
70
70
  assert_equal 1, @store.keys.size
71
+ end
71
72
 
73
+ should "return keys" do
74
+ @root.one.a.A = 'A'
75
+ @root.one.a.B = 'B'
76
+ @root.two.b.A = 'AA'
77
+ @root.two.b.B = 'BB'
78
+ assert_same_elements ["one", "two"], @root.keys
72
79
  end
80
+
73
81
  end
74
82
 
75
83
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keyvaluetree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  segments:
117
117
  - 0
118
- hash: -4411598630716912686
118
+ hash: 1144361209399156749
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  none: false
121
121
  requirements:
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  segments:
126
126
  - 0
127
- hash: -4411598630716912686
127
+ hash: 1144361209399156749
128
128
  requirements: []
129
129
  rubyforge_project:
130
130
  rubygems_version: 1.8.24