riakrest 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +41 -0
  3. data/PostInstall.txt +2 -0
  4. data/README.rdoc +51 -0
  5. data/Rakefile +24 -0
  6. data/examples/auto_update_data.rb +50 -0
  7. data/examples/auto_update_links.rb +48 -0
  8. data/examples/basic_client.rb +33 -0
  9. data/examples/basic_resource.rb +34 -0
  10. data/examples/json_data_resource.rb +32 -0
  11. data/examples/linked_resource.rb +113 -0
  12. data/examples/multiple_resources.rb +43 -0
  13. data/lib/riakrest/core/exceptions.rb +73 -0
  14. data/lib/riakrest/core/jiak_bucket.rb +146 -0
  15. data/lib/riakrest/core/jiak_client.rb +316 -0
  16. data/lib/riakrest/core/jiak_data.rb +265 -0
  17. data/lib/riakrest/core/jiak_link.rb +131 -0
  18. data/lib/riakrest/core/jiak_object.rb +233 -0
  19. data/lib/riakrest/core/jiak_schema.rb +242 -0
  20. data/lib/riakrest/core/query_link.rb +156 -0
  21. data/lib/riakrest/data/jiak_data_hash.rb +182 -0
  22. data/lib/riakrest/resource/jiak_resource.rb +628 -0
  23. data/lib/riakrest/version.rb +7 -0
  24. data/lib/riakrest.rb +164 -0
  25. data/riakrest.gemspec +38 -0
  26. data/script/console +10 -0
  27. data/script/destroy +14 -0
  28. data/script/generate +14 -0
  29. data/spec/core/exceptions_spec.rb +18 -0
  30. data/spec/core/jiak_bucket_spec.rb +103 -0
  31. data/spec/core/jiak_client_spec.rb +358 -0
  32. data/spec/core/jiak_link_spec.rb +77 -0
  33. data/spec/core/jiak_object_spec.rb +210 -0
  34. data/spec/core/jiak_schema_spec.rb +184 -0
  35. data/spec/core/query_link_spec.rb +128 -0
  36. data/spec/data/jiak_data_hash_spec.rb +14 -0
  37. data/spec/resource/jiak_resource_spec.rb +128 -0
  38. data/spec/riakrest_spec.rb +17 -0
  39. data/spec/spec.opts +5 -0
  40. data/spec/spec_helper.rb +12 -0
  41. data/tasks/rspec.rake +21 -0
  42. metadata +113 -0
@@ -0,0 +1,184 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
2
+
3
+ describe "JiakSchema" do
4
+ before do
5
+ @allowed_fields = [:foo,:bar,:baz]
6
+ @required_fields = [:foo]
7
+ @read_mask = [:foo,:bar]
8
+ @write_mask = [:baz]
9
+ @hash = {
10
+ :allowed_fields => @allowed_fields,
11
+ :required_fields => @required_fields,
12
+ :read_mask => @read_mask,
13
+ :write_mask => @write_mask
14
+ }
15
+ @jiak_schema = JiakSchema.new(@hash)
16
+ end
17
+
18
+ it "should respond to" do
19
+ JiakSchema.should respond_to(:from_jiak)
20
+
21
+ @jiak_schema.should respond_to(:allowed_fields,:allowed_fields=)
22
+ @jiak_schema.should respond_to(:required_fields,:required_fields=)
23
+ @jiak_schema.should respond_to(:read_mask,:read_mask=)
24
+ @jiak_schema.should respond_to(:write_mask,:write_mask=)
25
+
26
+ @jiak_schema.should respond_to(:to_jiak)
27
+ @jiak_schema.should respond_to(:==,:eql?)
28
+ end
29
+
30
+ it "should create using defaults from allowed_fields" do
31
+ jiak_schema = JiakSchema.new({:allowed_fields => @allowed_fields})
32
+ jiak_schema.allowed_fields.should eql @allowed_fields
33
+ jiak_schema.required_fields.should eql []
34
+ jiak_schema.read_mask.should eql @allowed_fields
35
+ jiak_schema.write_mask.should eql @allowed_fields
36
+
37
+ jiak_schema = JiakSchema.new(@allowed_fields)
38
+ jiak_schema.allowed_fields.should eql @allowed_fields
39
+ jiak_schema.required_fields.should eql []
40
+ jiak_schema.read_mask.should eql @allowed_fields
41
+ jiak_schema.write_mask.should eql @allowed_fields
42
+
43
+ jiak_schema = JiakSchema.new({:allowed_fields => []})
44
+ jiak_schema.allowed_fields.should eql []
45
+ jiak_schema.required_fields.should eql []
46
+ jiak_schema.read_mask.should eql []
47
+ jiak_schema.write_mask.should eql []
48
+
49
+ jiak_schema = JiakSchema.new([])
50
+ jiak_schema.allowed_fields.should eql []
51
+ jiak_schema.required_fields.should eql []
52
+ jiak_schema.read_mask.should eql []
53
+ jiak_schema.write_mask.should eql []
54
+ end
55
+
56
+ it "should create using specified fields and masks" do
57
+ @jiak_schema.allowed_fields.should eql @allowed_fields
58
+ @jiak_schema.required_fields.should eql @required_fields
59
+ @jiak_schema.read_mask.should eql @read_mask
60
+ @jiak_schema.write_mask.should eql @write_mask
61
+ end
62
+
63
+ it "should create from a Hash" do
64
+ jiak_schema = JiakSchema.new(@hash)
65
+ jiak_schema.allowed_fields.should eql @allowed_fields
66
+ jiak_schema.required_fields.should eql @required_fields
67
+ jiak_schema.read_mask.should eql @read_mask
68
+ jiak_schema.write_mask.should eql @write_mask
69
+
70
+ hash = {:schema => @hash}
71
+ jiak_schema = JiakSchema.new(hash)
72
+ jiak_schema.should eql @jiak_schema
73
+ jiak_schema.should == @jiak_schema
74
+
75
+ @hash['allowed_fields'] = @hash[:allowed_fields]
76
+ @hash.delete(:allowed_fields)
77
+ @hash['read_mask'] = @hash[:read_mask]
78
+ @hash.delete(:read_mask)
79
+ jiak_schema = JiakSchema.new(@hash)
80
+ jiak_schema.allowed_fields.should eql @allowed_fields
81
+ jiak_schema.required_fields.should eql @required_fields
82
+ jiak_schema.read_mask.should eql @read_mask
83
+ jiak_schema.write_mask.should eql @write_mask
84
+ end
85
+
86
+ it "should create from json" do
87
+ schema = JiakSchema.from_jiak(JSON.parse(@hash.to_json))
88
+ @allowed_fields.same_fields?(schema.allowed_fields).should be true
89
+ @required_fields.same_fields?(schema.required_fields).should be true
90
+ @write_mask.same_fields?(schema.write_mask).should be true
91
+ @read_mask.same_fields?(schema.read_mask).should be true
92
+ end
93
+
94
+ it "should validate create options" do
95
+ hash = @hash.clone
96
+ hash.delete(:allowed_fields)
97
+ bad = lambda {JiakSchema.new(hash)}
98
+ bad.should raise_error(JiakSchemaException,/allowed_fields.*array/)
99
+
100
+ hash = @hash.clone
101
+ hash[:allowed_fields] = nil
102
+ bad = lambda {JiakSchema.new(hash)}
103
+ bad.should raise_error(JiakSchemaException,/allowed_fields.*array/)
104
+
105
+ hash[:allowed_fields] = 'a'
106
+ bad = lambda {JiakSchema.new(hash)}
107
+ bad.should raise_error(JiakSchemaException,/allowed_fields.*array/)
108
+
109
+ hash = @hash.clone
110
+ hash[:required_fields] = {}
111
+ bad = lambda {JiakSchema.new(hash)}
112
+ bad.should raise_error(JiakSchemaException,/required_fields.*array/)
113
+
114
+ hash = @hash.clone
115
+ hash[:read_mask] = [1]
116
+ bad = lambda {JiakSchema.new(hash)}
117
+ bad.should raise_error(JiakSchemaException,/read_mask.*strings/)
118
+
119
+ hash = @hash.clone
120
+ hash[:write_mask] = ['a','b',3]
121
+ bad = lambda {JiakSchema.new(hash)}
122
+ bad.should raise_error(JiakSchemaException,/write_mask.*strings/)
123
+
124
+ hash = @hash.clone
125
+ hash[:allowed_fields] << @allowed_fields[0].to_s
126
+ bad = lambda {JiakSchema.new(hash)}
127
+ bad.should raise_error(JiakSchemaException,/unique/)
128
+
129
+ hash = @hash.clone
130
+ hash[:allowed_fields] << @allowed_fields[0].to_sym
131
+ bad = lambda {JiakSchema.new(hash)}
132
+ bad.should raise_error(JiakSchemaException,/unique/)
133
+ end
134
+
135
+ it "should update with validation" do
136
+ arr = [:f1,'f2']
137
+ @jiak_schema.allowed_fields = arr
138
+ @jiak_schema.allowed_fields.should eql arr
139
+ @jiak_schema.required_fields = arr
140
+ @jiak_schema.required_fields.should eql arr
141
+ @jiak_schema.read_mask = arr
142
+ @jiak_schema.read_mask.should eql arr
143
+ @jiak_schema.write_mask = arr
144
+ @jiak_schema.write_mask.should eql arr
145
+
146
+ bad = lambda {@jiak_schema.allowed_fields = nil}
147
+ bad.should raise_error(JiakSchemaException,/allowed_fields.*array/)
148
+
149
+ bad = lambda {@jiak_schema.required_fields = 'a'}
150
+ bad.should raise_error(JiakSchemaException,/required_fields.*array/)
151
+
152
+ bad = lambda {@jiak_schema.read_mask = [:f,1]}
153
+ bad.should raise_error(JiakSchemaException,/read_mask.*symbol/)
154
+
155
+ arr << :f1
156
+ bad = lambda {@jiak_schema.write_mask = arr}
157
+ bad.should raise_error(JiakSchemaException,/unique/)
158
+ end
159
+
160
+ it "should convert to json" do
161
+ @jiak_schema.to_jiak.should eql ({:schema => @hash}.to_json)
162
+ end
163
+
164
+ it "should equal an equal JiakSchema" do
165
+ jiak_schema = JiakSchema.new(@hash)
166
+ jiak_schema.should eql @jiak_schema
167
+
168
+ strings = JiakSchema.new(['a','bb','CcC'])
169
+ symbols = JiakSchema.new([:a,:bb,:CcC])
170
+ strings.should eql symbols
171
+ symbols.should eql strings
172
+
173
+ strings = JiakSchema.new(['a','bb','CcC','d'])
174
+ symbols = JiakSchema.new([:a,:bb,:CcC])
175
+ strings.should_not eql symbols
176
+ symbols.should_not eql strings
177
+
178
+ strings = JiakSchema.new(['a','bb','CC'])
179
+ symbols = JiakSchema.new([:a,:bb,:CcC])
180
+ strings.should_not eql symbols
181
+ symbols.should_not eql strings
182
+ end
183
+
184
+ end
@@ -0,0 +1,128 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
2
+
3
+ describe "QueryLink" do
4
+ before do
5
+ @bucket = 'b'
6
+ @tag = 't'
7
+ @acc = 'a'
8
+ @any = QueryLink::ANY
9
+ @query_link = QueryLink.new(@bucket,@tag,@acc)
10
+ @array = [@bucket,@tag,@acc]
11
+ @query_link_any = QueryLink.new
12
+ end
13
+
14
+ it "should respond to" do
15
+ @query_link.should respond_to(:bucket,:tag,:acc)
16
+ @query_link.should respond_to(:bucket=,:tag=,:acc=)
17
+
18
+ @query_link.should respond_to(:for_uri)
19
+
20
+ @query_link.should respond_to(:eql?,:==)
21
+ end
22
+
23
+ it "should init from specified values" do
24
+ @query_link.bucket.should eql @bucket
25
+ @query_link.tag.should eql @tag
26
+ @query_link.acc.should eql @acc
27
+
28
+ query_link = QueryLink.new([@bucket,@tag,@acc])
29
+ query_link.bucket.should eql @bucket
30
+ query_link.tag.should eql @tag
31
+ query_link.acc.should eql @acc
32
+
33
+ query_link = QueryLink.new(@query_link)
34
+ query_link.bucket.should eql @bucket
35
+ query_link.tag.should eql @tag
36
+ query_link.acc.should eql @acc
37
+ end
38
+
39
+ it "should fill in missing args with ANY" do
40
+ query_link = QueryLink.new(@bucket,@tag)
41
+ query_link.bucket.should eql @bucket
42
+ query_link.tag.should eql @tag
43
+ query_link.acc.should eql @any
44
+
45
+ query_link = QueryLink.new(@bucket)
46
+ query_link.bucket.should eql @bucket
47
+ query_link.tag.should eql @any
48
+ query_link.acc.should eql @any
49
+
50
+ query_link = QueryLink.new
51
+ query_link.bucket.should eql @any
52
+ query_link.tag.should eql @any
53
+ query_link.acc.should eql @any
54
+
55
+ query_link = QueryLink.new([@bucket,@tag])
56
+ query_link.bucket.should eql @bucket
57
+ query_link.tag.should eql @tag
58
+ query_link.acc.should eql @any
59
+
60
+ query_link = QueryLink.new([@bucket])
61
+ query_link.bucket.should eql @bucket
62
+ query_link.tag.should eql @any
63
+ query_link.acc.should eql @any
64
+
65
+ query_link = QueryLink.new []
66
+ query_link.bucket.should eql @any
67
+ query_link.tag.should eql @any
68
+ query_link.acc.should eql @any
69
+ end
70
+
71
+ it "should ignore leading/trailing spaces for opts on init" do
72
+ bucket = " "+@bucket+" "
73
+ tag = " "+@tag+" "
74
+ acc = " "+@acc+" "
75
+ query_link = QueryLink.new([bucket,tag,acc])
76
+ query_link.bucket.should eql @bucket
77
+ query_link.tag.should eql @tag
78
+ query_link.acc.should eql @acc
79
+ end
80
+
81
+ it "should treat blank, empty strings, or nil as ANY on init" do
82
+ jiak_any_link = QueryLink.new
83
+
84
+ [""," ",nil].each do |val|
85
+ query_link = QueryLink.new([val,val,val])
86
+ query_link.should eql jiak_any_link
87
+ query_link.should == jiak_any_link
88
+ end
89
+ end
90
+
91
+ it "should init from an array" do
92
+ query_link = QueryLink.new(@array)
93
+ query_link.bucket.should eql @bucket
94
+ query_link.tag.should eql @tag
95
+ query_link.acc.should eql @acc
96
+ end
97
+
98
+ it "should allow field updates" do
99
+ @query_link.bucket = 'new_bucket'
100
+ @query_link.bucket.should eql 'new_bucket'
101
+ @query_link.tag = 'new_tag'
102
+ @query_link.tag.should eql 'new_tag'
103
+ @query_link.acc = 'new_acc'
104
+ @query_link.acc.should eql 'new_acc'
105
+ end
106
+
107
+ it "should convert to a suitable URI string" do
108
+ @query_link.for_uri.should eql @bucket+','+@tag+','+@acc
109
+
110
+ b = 's p a c e'
111
+ t = '<%>'
112
+ a = '\\'
113
+ query_link = QueryLink.new([b,t,a])
114
+ query_link.for_uri.should eql URI.encode([b,t,a].join(','))
115
+ end
116
+
117
+ it "should compare to another QueryLink via eql?" do
118
+ query_link_1 = QueryLink.new(['a','b','c'])
119
+ query_link_2 = QueryLink.new(['a','b','c'])
120
+ query_link_3 = QueryLink.new(['a','','c'])
121
+
122
+ query_link_1.should eql query_link_2
123
+ query_link_1.should_not eql query_link_3
124
+
125
+ query_link_1.should == query_link_2
126
+ query_link_1.should_not == query_link_3
127
+ end
128
+ end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
2
+
3
+ describe "JiakDataHash" do
4
+ Person = JiakDataHash.create(:name, :age)
5
+
6
+ before do
7
+ end
8
+
9
+ it "should create a fully usable JiakData class" do
10
+ Person.schema.should respond_to(:allowed_fields,:required_fields,
11
+ :read_mask,:write_mask)
12
+ end
13
+
14
+ end
@@ -0,0 +1,128 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
2
+
3
+ describe "JiakResource" do
4
+ F1F2 = JiakDataHash.create(:f1,:f2)
5
+ class Rsrc
6
+ include JiakResource
7
+ server 'http://localhost:8002/jiak'
8
+ group 'group'
9
+ data_class F1F2
10
+ end
11
+
12
+ before do
13
+ @server = 'http://localhost:8002/jiak'
14
+ @group = 'group'
15
+ @data_class = F1F2
16
+ end
17
+
18
+ describe "class" do
19
+ it "should respond to" do
20
+ Rsrc.should respond_to(:server,:group,:data_class)
21
+ Rsrc.should respond_to(:params,:auto_update,:schema,:keys)
22
+ Rsrc.should respond_to(:allowed,:required,:readable,:writable,:readwrite)
23
+ Rsrc.should respond_to(:point_of_view,:pov,:point_of_view?,:pov?)
24
+ Rsrc.should respond_to(:post,:put,:get,:delete)
25
+ Rsrc.should respond_to(:refresh,:update)
26
+ Rsrc.should respond_to(:link,:bi_link,:walk)
27
+ Rsrc.should respond_to(:new,:copy)
28
+ Rsrc.should respond_to(:auto_post,:auto_update,:auto_post?,:auto_update?)
29
+
30
+ Rsrc.jiak.should respond_to(:server,:uri,:group,:data,:bucket,:auto_update)
31
+
32
+
33
+ end
34
+
35
+ it "shoud have settings from creation" do
36
+ Rsrc.params.should be_empty
37
+ Rsrc.auto_update?.should be false
38
+ Rsrc.schema.should eql F1F2.schema
39
+
40
+ Rsrc.jiak.should be_a Struct
41
+ Rsrc.jiak.server.should be_a JiakClient
42
+ Rsrc.jiak.uri.should eql @server
43
+ Rsrc.jiak.group.should eql @group
44
+ Rsrc.jiak.data.should include JiakData
45
+ Rsrc.jiak.data.should == F1F2
46
+ Rsrc.jiak.bucket.should be_a JiakBucket
47
+ Rsrc.jiak.bucket.name.should eql @group
48
+ Rsrc.jiak.bucket.data_class.should == F1F2
49
+ Rsrc.jiak.auto_update.should be false
50
+ end
51
+ end
52
+
53
+ describe "instance" do
54
+ before do
55
+ @rsrc = Rsrc.new
56
+ end
57
+
58
+ it "should respond to" do
59
+ @rsrc.should respond_to(:jiak,:jiak=)
60
+ @rsrc.should respond_to(:auto_update=,:auto_update?)
61
+ @rsrc.should respond_to(:post,:put,:update,:refresh,:delete)
62
+ @rsrc.should respond_to(:link,:bi_link,:walk)
63
+ @rsrc.should respond_to(:eql?,:==)
64
+ end
65
+
66
+ it "should have default settings" do
67
+ @rsrc.jiak.should be_a Struct
68
+ @rsrc.jiak.should respond_to(:obj,:auto_update)
69
+
70
+ @rsrc.jiak.obj.should be_a JiakObject
71
+ @rsrc.jiak.obj.bucket.should be_a JiakBucket
72
+ @rsrc.jiak.obj.bucket.name.should eql @group
73
+ @rsrc.jiak.obj.bucket.data_class.should == F1F2
74
+
75
+ @rsrc.jiak.auto_update.should be_nil
76
+ end
77
+ end
78
+ end
79
+
80
+ describe "JiakResource default class-level auto-post" do
81
+ PersonData = JiakDataHash.create(:name,:age)
82
+ PersonData.keygen :name
83
+ class Person
84
+ include JiakResource
85
+ server 'http://localhost:8002/jiak'
86
+ group 'people'
87
+ data_class PersonData
88
+ end
89
+
90
+ it "should create instance without posting" do
91
+ Person.auto_post?.should be false
92
+
93
+ name = 'p'
94
+ p = Person.new(:name => name, :age => 10)
95
+
96
+ no_rsrc = lambda {Person.get(name)}
97
+ no_rsrc.should raise_error(JiakResourceNotFound)
98
+
99
+ p.post
100
+ Person.get(name).name.should eql p.name
101
+
102
+ p.delete
103
+ end
104
+ end
105
+
106
+ describe "JiakResource class-level auto-post true" do
107
+ PersonData = JiakDataHash.create(:name,:age)
108
+ PersonData.keygen :name
109
+ class Person
110
+ include JiakResource
111
+ server 'http://localhost:8002/jiak'
112
+ group 'people'
113
+ data_class PersonData
114
+ auto_post true
115
+ end
116
+
117
+ it "should auto-post a new instance" do
118
+ Person.auto_post?.should be true
119
+
120
+ name = 'P'
121
+ p = Person.new(:name => name, :age => 10)
122
+ Person.get(name).name.should eql name
123
+ p.delete
124
+ end
125
+ end
126
+
127
+
128
+ # CxINC Many, many more tests to go
@@ -0,0 +1,17 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "RiakRest" do
4
+ it "should declare a version" do
5
+ RiakRest::VERSION.should_not be nil
6
+ end
7
+ end
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
data/spec/spec.opts ADDED
@@ -0,0 +1,5 @@
1
+ --colour
2
+ --format
3
+ progress
4
+ --loadby
5
+ mtime
@@ -0,0 +1,12 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+
11
+ require 'riakrest'
12
+ include RiakRest
data/tasks/rspec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ # desc "Run the specs under spec/models"
18
+ # Spec::Rake::SpecTask.new do |t|
19
+ # t.spec_opts = ['--options', "spec/spec.opts"]
20
+ # t.spec_files = FileList['spec/**/*_spec.rb']
21
+ # end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: riakrest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Paul Rogers
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-29 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.3
24
+ version:
25
+ description: |-
26
+ RiakRest provides structured, RESTful interaction with a Riak document
27
+ store. In Riak parlance, this JSON data exchange is called Jiak. RiakRest
28
+ provides two levels of interaction: Core Client and Resource. Core Client
29
+ interaction works down at the Jiak level and exposes Jiak internals. Resource
30
+ interaction is an abstraction built on top of the Core Client.
31
+ email:
32
+ - paul@dingosky.com
33
+ executables: []
34
+
35
+ extensions: []
36
+
37
+ extra_rdoc_files:
38
+ - History.txt
39
+ - Manifest.txt
40
+ - PostInstall.txt
41
+ files:
42
+ - History.txt
43
+ - Manifest.txt
44
+ - PostInstall.txt
45
+ - README.rdoc
46
+ - Rakefile
47
+ - examples/auto_update_data.rb
48
+ - examples/auto_update_links.rb
49
+ - examples/basic_client.rb
50
+ - examples/basic_resource.rb
51
+ - examples/json_data_resource.rb
52
+ - examples/linked_resource.rb
53
+ - examples/multiple_resources.rb
54
+ - lib/riakrest.rb
55
+ - lib/riakrest/core/exceptions.rb
56
+ - lib/riakrest/core/jiak_bucket.rb
57
+ - lib/riakrest/core/jiak_client.rb
58
+ - lib/riakrest/core/jiak_data.rb
59
+ - lib/riakrest/core/jiak_link.rb
60
+ - lib/riakrest/core/jiak_object.rb
61
+ - lib/riakrest/core/jiak_schema.rb
62
+ - lib/riakrest/core/query_link.rb
63
+ - lib/riakrest/data/jiak_data_hash.rb
64
+ - lib/riakrest/resource/jiak_resource.rb
65
+ - lib/riakrest/version.rb
66
+ - riakrest.gemspec
67
+ - script/console
68
+ - script/destroy
69
+ - script/generate
70
+ - spec/core/exceptions_spec.rb
71
+ - spec/core/jiak_bucket_spec.rb
72
+ - spec/core/jiak_client_spec.rb
73
+ - spec/core/jiak_link_spec.rb
74
+ - spec/core/jiak_object_spec.rb
75
+ - spec/core/jiak_schema_spec.rb
76
+ - spec/core/query_link_spec.rb
77
+ - spec/data/jiak_data_hash_spec.rb
78
+ - spec/resource/jiak_resource_spec.rb
79
+ - spec/riakrest_spec.rb
80
+ - spec/spec.opts
81
+ - spec/spec_helper.rb
82
+ - tasks/rspec.rake
83
+ has_rdoc: true
84
+ homepage: http://github.com/wcpr/riakrest
85
+ licenses: []
86
+
87
+ post_install_message: PostInstall.txt
88
+ rdoc_options:
89
+ - --main
90
+ - README.rdoc
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: "0"
98
+ version:
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ requirements: []
106
+
107
+ rubyforge_project: riakrest
108
+ rubygems_version: 1.3.5
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: RiakRest provides structured, RESTful interaction with a Riak document store
112
+ test_files: []
113
+