riakrest 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
-