riakrest 0.0.4 → 0.1.0

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/History.txt CHANGED
@@ -1,34 +1,33 @@
1
+ === 0.1.0 2009-11-16
2
+ - Renamed data/JiakDataHash to core/JiakDataFields and reworked.
3
+ - Move JiakDataHash functionality into JiakData as default implementation
4
+ - Like Resource, JiakData has jattr_* to manage data inside out.
5
+ - Resource encapsulates its data.
6
+ - jattr_* methods add data fields and implicitly maintain schema.
7
+ - Removed class methods for schema manipulation.
8
+ - Incrementally add fields data.
9
+ - Incrementally add fields to schemas.
10
+
1
11
  === 0.0.4 2009-11-10
2
- * Mods
3
- * Fixed bug when running ruby 1.8
4
- * Changed client_store option for returning object to :return => :object
5
- * Added check to eql? and == that both objects are either local or not.
6
- * Refactored local? method to jiak_object.
12
+ - Fixed bug when running ruby 1.8
13
+ - Changed client_store option for returning object to :return => :object
14
+ - Added check to eql? and == that both objects are either local or not.
15
+ - Refactored local? method to jiak_object.
7
16
 
8
17
  === 0.0.3 2009-11-03
9
-
10
- * Mods:
11
- * Switched to jeweler for managing gem
12
- * Allow passing an array for specifying schema fields/masks
13
- * Added convenience accessors to rsrc.jiak
14
- * Allow setting proxy on core client
15
-
16
- Clean-up:
17
- * More examples futzing.
18
+ - Switched to jeweler for managing gem
19
+ - Allow passing an array for specifying schema fields/masks
20
+ - Added convenience accessors to rsrc.jiak
21
+ - Allow setting proxy on core client
22
+ - More examples futzing.
18
23
 
19
24
  === 0.0.2 2009-10-30
20
-
21
- * Mods:
22
- * Fixed corner case for auto_post false / auto_update true.
23
- * Explicitly reserve jiak field in user data classes.
24
- * Changed walk to query. Kept walk as an alias.
25
-
26
- * Clean-up:
27
- * DRY'd some code
28
- * Examples
25
+ - Fixed corner case for auto_post false / auto_update true.
26
+ - Explicitly reserve jiak field in user data classes.
27
+ - Changed walk to query. Kept walk as an alias.
28
+ - DRY'd some code
29
+ - Examples
29
30
 
30
31
 
31
32
  === 0.0.1 2009-10-20
32
-
33
- * Initial release:
34
- * To github, anyway. git log shows the prior activity.
33
+ - Initial release to github, anyway. git log shows the prior activity.
data/README.rdoc CHANGED
@@ -10,10 +10,11 @@ store.
10
10
  == RIAK:
11
11
 
12
12
  Riak[http://riak.basho.com] is an open-source project developed and maintained
13
- by the fine folks at Basho[http://www.basho.com]. It combines a decentralized
14
- key-value store, a flexible map/reduce engine, and a friendly HTTP/JSON query
15
- interface to provide a database ideally suited for Web applications. RiakRest
16
- interacts with the HTTP/JSON query interface, which is called Jiak.
13
+ by the fine folks at Basho[http://www.basho.com] Technologies. Riak combines a
14
+ decentralized key-value store, a flexible map/reduce engine, and a friendly
15
+ HTTP/JSON query interface to provide a database ideally suited for Web
16
+ applications. RiakRest interacts with the HTTP/JSON query interface, which is
17
+ called Jiak.
17
18
 
18
19
  == SYNOPSIS:
19
20
 
@@ -25,7 +26,7 @@ of the Core Client that gives a true RESTful feel.
25
26
 
26
27
  == REQUIREMENTS:
27
28
 
28
- RestClient is used for REST server interaction
29
+ RestClient is used for REST server interaction.
29
30
 
30
31
  JSON is used for data exchange.
31
32
 
@@ -40,32 +41,21 @@ sudo gem install riakrest
40
41
  require 'riakrest'
41
42
  include RiakRest
42
43
 
43
- PersonData = JiakDataHash.create(:name,:age)
44
- PersonData.keygen :name
45
-
46
- class Person
44
+ class People
47
45
  include JiakResource
48
- server 'http://localhost:8002/jiak'
49
- group 'people'
50
- data_class PersonData
51
- auto_post true
52
- auto_update true
46
+ server 'http://localhost:8002/jiak'
47
+ jattr_accessor :name, :age
48
+ auto_manage
53
49
  end
54
50
 
55
- remy = Person.new(:name => 'remy',:age => 10) # (auto-post)
56
- puts remy.name # => "remy"
57
-
58
- puts Person.get('remy').name # => "remy" (from Jiak server)
59
- puts Person.get('remy').age # => 10 (from Jiak server)
60
-
61
- remy.age = 11 # (auto-update)
62
- puts Person.get('remy').age # => 11 (from Jiak server)
51
+ remy = People.new(:name => 'Remy',:age => 10) # (auto-post)
52
+ remy.age = 11 # (auto-update)
63
53
 
64
- callie = Person.new(:name => 'Callie', :age => 13)
65
- remy.link(callie,'sister') # link from remy to callie
54
+ callie = People.new(:name => 'Callie', :age => 13)
55
+ remy.link(callie,'sister')
66
56
 
67
- sisters = remy.query(Person,'sister') # use link to get 'sister'
68
- puts sisters[0].eql?(callie) # => true
57
+ sisters = remy.query(People,'sister')
58
+ puts sisters[0].eql?(callie) # => true
69
59
 
70
60
  remy.delete
71
61
  callie.delete
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.1.0
@@ -1,43 +1,38 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- PersonData = JiakDataHash.create(:name,:age)
5
- PersonData.keygen :name
6
-
7
- class Person
4
+ class People
8
5
  include JiakResource
9
-
10
- server 'http://localhost:8002/jiak'
11
- group 'people'
12
- data_class PersonData
13
- auto_post true
14
- auto_update true
6
+ server 'http://localhost:8002/jiak'
7
+ jattr_accessor :name, :age
8
+ keygen { name }
9
+ auto_manage
15
10
  end
16
11
 
17
- remy = Person.new(:name => 'remy', :age => 10)
18
- puts Person.get('remy').name # => "remy"
12
+ remy = People.new(:name => 'remy', :age => 10)
13
+ puts People.get('remy').name # => "remy"
19
14
 
20
15
  remy.name = "Remy"
21
- puts Person.get('remy').name # => "Remy"
16
+ puts People.get('remy').name # => "Remy"
22
17
  remy.age = 12
23
- puts Person.get('remy').age # => 12
18
+ puts People.get('remy').age # => 12
24
19
 
25
- Person.auto_update false
20
+ People.auto_update false
26
21
  remy.auto_update = true
27
- puts Person.get('remy').age # => 12
22
+ puts People.get('remy').age # => 12
28
23
  remy.age = 10
29
- puts Person.get('remy').age # => 10
24
+ puts People.get('remy').age # => 10
30
25
 
31
- Person.auto_update true
26
+ People.auto_update true
32
27
  remy.auto_update = false
33
28
  remy.age = 12
34
- puts Person.get('remy').age # => 10
29
+ puts People.get('remy').age # => 10
35
30
  remy.update
36
- puts Person.get('remy').age # => 12
31
+ puts People.get('remy').age # => 12
37
32
 
38
33
  remy.auto_update = nil
39
34
  remy.age = 10
40
- puts Person.get('remy').age # => 10
35
+ puts People.get('remy').age # => 10
41
36
 
42
37
  remy.delete
43
38
 
@@ -1,47 +1,43 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- PersonData = JiakDataHash.create(:name,:age)
5
- PersonData.keygen :name
6
-
7
- class Person
4
+ class People
8
5
  include JiakResource
9
-
10
- server 'http://localhost:8002/jiak'
11
- group 'people'
12
- data_class PersonData
13
- auto_post true
6
+ server 'http://localhost:8002/jiak'
7
+ jattr_accessor :name, :age
8
+ keygen { name.downcase }
9
+ auto_post
14
10
  end
15
11
 
16
- remy = Person.new(:name => 'remy', :age => 10)
17
- callie = Person.new(:name => 'Callie', :age => 12)
12
+ remy = People.new(:name => 'remy', :age => 10)
13
+ callie = People.new(:name => 'Callie', :age => 12)
18
14
 
19
15
  remy.link(callie,'sister')
20
- puts remy.query(Person,'sister').size # => 0
16
+ puts remy.query(People,'sister').size # => 0
21
17
  remy.update
22
- puts remy.query(Person,'sister').size # => 1
18
+ puts remy.query(People,'sister').size # => 1
23
19
  remy.remove_link(callie,'sister')
24
20
 
25
- Person.auto_update true
21
+ People.auto_update true
26
22
  remy.link(callie,'sibling')
27
- puts remy.query(Person,'sibling').size # => 1
23
+ puts remy.query(People,'sibling').size # => 1
28
24
  remy.remove_link(callie,'sibling')
29
25
 
30
26
  callie.auto_update = false
31
27
  callie.link(remy,'sibling')
32
- puts callie.query(Person,'sibling').size # => 0
28
+ puts callie.query(People,'sibling').size # => 0
33
29
  callie.update
34
- puts callie.query(Person,'sibling').size # => 1
30
+ puts callie.query(People,'sibling').size # => 1
35
31
  callie.remove_link(remy,'sibling')
36
32
 
37
- Person.auto_update false
33
+ People.auto_update false
38
34
  remy.auto_update = true
39
35
  callie.auto_update = nil
40
36
  remy.bi_link(callie,'sisters')
41
- puts remy.query(Person,'sisters').size # => 1
42
- puts callie.query(Person,'sisters').size # => 0
37
+ puts remy.query(People,'sisters').size # => 1
38
+ puts callie.query(People,'sisters').size # => 0
43
39
  callie.update
44
- puts callie.query(Person,'sisters').size # => 1
40
+ puts callie.query(People,'sisters').size # => 1
45
41
 
46
42
  remy.delete
47
43
  callie.delete
@@ -1,31 +1,35 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- Person = JiakDataHash.create(:name,:age)
4
+ class PeopleData
5
+ include JiakData
6
+ jattr_accessor :name, :age
7
+ end
5
8
 
6
9
  client = JiakClient.new("http://localhost:8002/jiak")
7
- bucket = JiakBucket.new('people',Person)
10
+ bucket = JiakBucket.new('people',PeopleData)
8
11
  client.set_schema(bucket)
9
12
 
10
13
  remy = client.store(JiakObject.new(:bucket => bucket,
11
- :data => Person.new(:name => "remy",
12
- :age => 10)),
13
- :return => :object)
14
+ :data => PeopleData.new(:name => "remy",
15
+ :age => 10)),
16
+ :return => :object)
14
17
  callie = client.store(JiakObject.new(:bucket => bucket,
15
- :data => Person.new(:name => "Callie",
16
- :age => 12)),
18
+ :data => PeopleData.new(:name => "Callie",
19
+ :age => 12)),
17
20
  :return => :object)
18
21
 
19
- puts client.get(bucket,remy.key).data.name # => "remy"
22
+ puts client.get(bucket,remy.key).data.name # => "remy"
20
23
 
21
24
  remy.data.name = "Remy"
22
25
  remy << JiakLink.new(bucket,callie.key,'sister')
23
26
  client.store(remy)
24
27
 
25
- puts client.get(bucket,remy.key).data.name # => "Remy"
28
+ puts client.get(bucket,remy.key).data.name # => "Remy"
26
29
 
27
- sisters = client.walk(bucket,remy.key,QueryLink.new(bucket,'sister'),Person)
28
- puts sisters[0].eql?(callie) # => true
30
+ sisters = client.walk(bucket,remy.key,
31
+ QueryLink.new(bucket,'sister'),PeopleData)
32
+ puts sisters[0].eql?(callie) # => true
29
33
 
30
34
  client.delete(bucket,remy.key)
31
35
  client.delete(bucket,callie.key)
@@ -1,32 +1,28 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- PersonData = JiakDataHash.create(:name,:age)
5
- PersonData.keygen :name
6
-
7
- class Person
4
+ class People
8
5
  include JiakResource
9
- server 'http://localhost:8002/jiak'
10
- group 'people'
11
- data_class PersonData
12
- auto_post true
13
- auto_update true
6
+ server 'http://localhost:8002/jiak'
7
+ jattr_accessor :name, :age
8
+ keygen {name.downcase}
9
+ auto_manage
14
10
  end
15
11
 
16
- remy = Person.new(:name => 'Remy',:age => 10) # (auto-post)
17
- puts remy.name # => "Remy"
12
+ remy = People.new(:name => 'Remy',:age => 10) # (auto-post)
13
+ puts remy.name # => "Remy"
18
14
 
19
- puts Person.get('Remy').name # => "Remy" (from Jiak server)
20
- puts Person.get('Remy').age # => 10 (from Jiak server)
15
+ puts People.get('remy').name # => "Remy" (from Jiak server)
16
+ puts People.get('remy').age # => 10 (from Jiak server)
21
17
 
22
- remy.age = 11 # (auto-update)
23
- puts Person.get('Remy').age # => 11 (from Jiak server)
18
+ remy.age = 11 # (auto-update)
19
+ puts People.get('remy').age # => 11 (from Jiak server)
24
20
 
25
- callie = Person.new(:name => 'Callie', :age => 13)
21
+ callie = People.new(:name => 'Callie', :age => 13)
26
22
  remy.link(callie,'sister')
27
23
 
28
- sisters = remy.query(Person,'sister')
29
- puts sisters[0].eql?(callie) # => true
24
+ sisters = remy.query(People,'sister')
25
+ puts sisters[0].eql?(callie) # => true
30
26
 
31
27
  remy.delete
32
28
  callie.delete
@@ -1,13 +1,14 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- DogData = JiakDataHash.create(:name,:age,:breeds)
4
+ DogData = JiakDataFields.create(:name,:age,:breeds)
5
+ DogData.keygen { name.downcase }
5
6
 
6
- # client = JiakClient.new("http://localhost:8002/jiak",:proxy=>"http://localhost:8888")
7
- client = JiakClient.new("http://localhost:8002/jiak")
7
+ # client = JiakClient.new("http://localhost:8002/jiak")
8
+ client = JiakClient.new("http://localhost:8002/jiak",
9
+ :proxy=>"http://localhost:8888")
8
10
  bucket = JiakBucket.new("dogs", DogData)
9
11
  chili = JiakObject.new(:bucket => bucket,
10
- :key => 'chili',
11
12
  :data => DogData.new(:name => "Chili",
12
13
  :age => 6,
13
14
  :breeds => ["heeler","akita"]))
@@ -15,22 +16,23 @@ client.set_schema(bucket)
15
16
  client.store(chili)
16
17
  chili = client.get(bucket,'chili')
17
18
 
18
- DogData.readable(:name,:breeds)
19
- DogData.writable(:name,:age)
19
+ DogBreedsData = JiakDataFields.create(:name,:breeds)
20
+ bucket.data_class = DogBreedsData
20
21
  client.set_schema(bucket)
21
22
  chili = client.get(bucket,'chili')
23
+ chili.data.breeds = ["heeler","mutt"]
24
+
25
+
26
+ DogAgeData = JiakDataFields.create(:name,:age)
22
27
  diego = JiakObject.new(:bucket => bucket,
23
- :key => "diego",
24
- :data => DogData.new(:name => "Diego",
28
+ :data => DogAgeData.new(:name => "Diego",
25
29
  :age => 7))
26
30
  client.store(diego)
27
31
 
28
32
  addie = JiakObject.new(:bucket => bucket,
29
- :key => "addie",
30
33
  :data => DogData.new(:name => "Adelaide",
31
34
  :age => 14,
32
35
  :breeds => ["heeler"]))
33
36
  client.store(addie)
34
37
 
35
-
36
38
  addie = client.get(bucket,'addie')
@@ -1,17 +1,13 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- PersonData = JiakDataHash.create(:name)
5
- PersonData.keygen :name
6
-
7
- class Parent
4
+ class Parents
8
5
  include JiakResource
9
-
10
- server 'http://localhost:8002/jiak'
11
- group 'parents'
12
- data_class PersonData
6
+ server 'http://localhost:8002/jiak'
7
+ jattr_accessor :name
8
+ keygen { name }
13
9
  end
14
- Child = Parent.copy(:group => 'children')
10
+ (Child = Parents.dup).group 'children'
15
11
 
16
12
  # relationships
17
13
  parent_children = {
@@ -31,7 +27,7 @@ end
31
27
 
32
28
  # store data and relationships
33
29
  parent_children.each do |pname,cnames|
34
- p = Parent.new(:name => pname).post
30
+ p = Parents.new(:name => pname).post
35
31
  cnames.each do |cname|
36
32
  begin
37
33
  c = Child.get(cname)
@@ -46,49 +42,50 @@ parent_children.each do |pname,cnames|
46
42
  end
47
43
 
48
44
  # retrieve parents
49
- parents = parent_children.keys.map {|p| Parent.get(p)}
45
+ parents = parent_children.keys.map {|p| Parents.get(p)}
50
46
  p0,p1,p2,p3 = parents
51
- puts p1.name # => 'p1'
47
+ puts p1.name # => 'p1'
52
48
 
53
49
  # retrieve children
54
50
  children = child_parents.keys.map {|c| Child.get(c)}
55
51
  c0,c1,c2,c3 = children
56
- puts c1.name # => 'c1'
52
+ puts c1.name # => 'c1'
57
53
 
58
54
  # retrieve parent children
59
55
  p0c,p1c,p2c,p3c = parents.map {|p| p.query(Child,'child')}
60
- puts p2c[0].name # => 'c2' (not sorted, could be 'c3')
56
+ puts p2c[0].name # => 'c2' (could be 'c3')
61
57
 
62
58
  # retrieve children parents
63
- c0p,c1p,c2p,c3p = children.map {|c| c.query(Parent,'parent')}
64
- puts c3p[0].name # => 'p3'
59
+ c0p,c1p,c2p,c3p = children.map {|c| c.query(Parents,'parent')}
60
+ puts c3p[0].name # => 'p2'
61
+ puts c3p[1].name # => 'p3'
65
62
 
66
63
  # retrieve children siblings
67
64
  c0s,c1s,c2s,c3s = children.map do |c|
68
- c.query(Parent,'parent',Child,'child').delete_if{|s| s.eql?(c)}
65
+ c.query(Parents,'parent',Child,'child').delete_if{|s| s.eql?(c)}
69
66
  end
70
- puts c3s[0].name # => 'c2'
67
+ puts c3s[0].name # => 'c2'
71
68
 
72
69
  # who is c3's step-sibling's other parent?
73
- c3sp = c3.query(Parent,'parent',Child,'child',Parent,'parent')
70
+ c3sp = c3.query(Parents,'parent',Child,'child',Parents,'parent')
74
71
  c3p.each {|p| c3sp.delete_if{|sp| p.eql?(sp)}}
75
- puts c3sp[0].name # => "p1"
72
+ puts c3sp[0].name # => "p1"
76
73
 
77
74
  # turn on auto-update at class level
78
- Parent.auto_update true
75
+ Parents.auto_update true
79
76
  Child.auto_update true
80
77
 
81
78
  # add sibling links
82
79
  children.each do |c|
83
- siblings = c.query(Parent,'parent',Child,'child').delete_if{|s| s.eql?(c)}
80
+ siblings = c.query(Parents,'parent',Child,'child').delete_if{|s| s.eql?(c)}
84
81
  siblings.each {|s| c.link(s,'sibling')}
85
82
  c.update
86
83
  end
87
- puts c1.query(Child,'sibling').size # => 2
84
+ puts c1.query(Child,'sibling').size # => 2
88
85
 
89
86
  # some folks are odd, and others are normal
90
87
  parent_children.keys.each do |p|
91
- parent = Parent.get(p)
88
+ parent = Parents.get(p)
92
89
  p_children = parent.query(Child,'child')
93
90
  p_children.each do |child|
94
91
  child.link(parent, p[1].to_i.odd? ? 'odd' : 'normal')
@@ -103,10 +100,10 @@ children.each {|c| c.refresh}
103
100
 
104
101
  # do any odd parents have normal children?
105
102
  op = parents.inject([]) do |build,parent|
106
- build << parent.query(Child,'normal',Parent,'odd')
103
+ build << parent.query(Child,'normal',Parents,'odd')
107
104
  build.flatten.uniq
108
105
  end
109
- puts op[0].name # => 'p1'
106
+ puts op[0].name # => 'p1'
110
107
 
111
108
  # clean-up by deleting everybody
112
109
  parents.each {|p| p.delete}
@@ -2,37 +2,37 @@ require 'riakrest'
2
2
  include RiakRest
3
3
 
4
4
  # class with 10 fields
5
- class Full
5
+ class Fields
6
6
  include JiakResource
7
- server 'http://localhost:8002/jiak'
8
- group 'fields'
9
- data_class JiakDataHash.create (0...10).map {|n| "f#{n}".to_sym}
10
- auto_post true
11
- auto_update true
7
+ server 'http://localhost:8002/jiak'
8
+ jattr_accessor (0...10).map {|n| "f#{n}".to_sym}
9
+ auto_manage
12
10
  end
13
11
 
14
- # copy of above, but no read/write fields, i.e., only links
15
- LinksOnly = JiakDataHash.create Full.schema
16
- LinksOnly.readwrite []
17
- Links = Full.copy(:data_class => LinksOnly)
12
+ class Links
13
+ include JiakResource
14
+ server 'http://localhost:8002/jiak'
15
+ auto_manage
16
+ end
18
17
 
19
- # populate two Full objects with (meaningless) stuff
20
- Full.pov
21
- full1,full2 =
22
- ["full1","full2"].map {|o| Full.new(Full.schema.write_mask.inject({}) do |h,f|
23
- h[f]="#{o.upcase}-#{f.hash}"
24
- h
25
- end)}
18
+ # populate two Fields objects with (meaningless) stuff
19
+ Fields.pov
20
+ fields = ["fields1","fields2"]
21
+ fields1,fields2 =
22
+ fields.map {|o| Fields.new(Fields.schema.write_mask.inject({}) do |h,f|
23
+ h[f]="#{o.upcase}-#{f.hash}"
24
+ h
25
+ end)}
26
26
 
27
27
  Links.pov
28
- links1 = Links.get(full1.jiak.key)
29
- links1.link(full2,'link')
28
+ links1 = Links.get(fields1.jiak.key)
29
+ links1.link(fields2,'link')
30
30
 
31
- Full.pov
32
- full2.f1 = "new f1"
31
+ Fields.pov
32
+ fields2.f1 = "new f1"
33
33
 
34
- linked = full1.query(Full,'link')[0]
35
- puts linked.f1 == full2.f1 # => true
34
+ linked = fields1.query(Fields,'link')[0]
35
+ puts linked.f1 == fields2.f1 # => true
36
36
 
37
- full1.delete
38
- full2.delete
37
+ fields1.delete
38
+ fields2.delete
@@ -1,27 +1,29 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- DogData = JiakDataHash.create(:name,:weight,:breed)
5
- DogData.keygen :name
6
4
  class Dog
7
5
  include JiakResource
8
- server 'http://localhost:8002/jiak'
9
- group 'dogs'
10
- data_class DogData
6
+ server 'http://localhost:8002/jiak'
7
+ jiak_accessor :name, :weight, :breed
8
+ keygen { name.downcase }
11
9
  end
12
10
 
13
- DogBreedData = JiakDataHash.create(DogData.schema)
14
- DogBreedData.readwrite :name, :breed
15
- DogBreed = Dog.copy(:data_class => DogBreedData)
11
+ class DogBreed
12
+ include JiakResource
13
+ server 'http://localhost:8002/jiak'
14
+ jiak_accessor :name, :breed
15
+ end
16
16
 
17
- DogWeightData = JiakDataHash.create(DogData.schema)
18
- DogWeightData.readwrite :name, :weight
19
- DogWeight = Dog.copy(:data_class => DogWeightData)
17
+ class DogWeight
18
+ include JiakResource
19
+ server 'http://localhost:8002/jiak'
20
+ jiak_accessor :name, :weight
21
+ end
20
22
 
21
23
  Dog.pov
22
- addie = Dog.new(:name => 'adelaide', :weight => 45, :breed => 'heeler')
24
+ addie = Dog.new(:name => 'Adelaide', :weight => 45, :breed => 'heeler')
23
25
  addie.post
24
- puts addie.name # => "adelaide"
26
+ puts addie.name # => "Adelaide"
25
27
  puts addie.breed # => "heeler"
26
28
  puts addie.weight # => 45
27
29
 
@@ -37,7 +39,7 @@ addie.put
37
39
 
38
40
  Dog.pov
39
41
  addie = Dog.get('adelaide')
40
- puts addie.name # => "adelaide"
42
+ puts addie.name # => "Adelaide"
41
43
  puts addie.breed # => "Heeler"
42
44
  puts addie.weight # => 47
43
45
 
@@ -1,8 +1,11 @@
1
1
  require 'riakrest'
2
2
  include RiakRest
3
3
 
4
- DogData = JiakDataHash.create(:name,:age,:breeds)
5
- # client = JiakClient.new("http://localhost:8002/jiak",:proxy=>"http://localhost:8888")
4
+ class DogData
5
+ include JiakData
6
+ jattr_accessor :name, :age, :breeds
7
+ end
8
+
6
9
  client = JiakClient.new("http://localhost:8002/jiak")
7
10
  bucket = JiakBucket.new("dogs", DogData)
8
11
 
@@ -44,8 +47,5 @@ client.store(strass)
44
47
  db_strass = client.get(bucket,'strass')
45
48
  puts db_strass.data.age # => 6 Yeah!
46
49
 
47
-
48
-
49
50
  # Clean-up
50
51
  client.keys(bucket).each {|key| client.delete(bucket,key)}
51
-