ShyCouch 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.3
1
+ 0.7.4
@@ -80,16 +80,18 @@ module ShyCouch
80
80
  @server.create_db(@name)
81
81
  end
82
82
  def getDocumentById(id)
83
- @server.get_document_by_id(@name, id)
83
+ @server.getDocumentById @name, id
84
+ rescue RestClient::ResourceNotFound
85
+ raise ShyCouch::ResourceNotFound
84
86
  end
85
87
 
86
88
  def pull_design(designName)
87
- doc = @server.get_document_by_id(@name, designName)
89
+ doc = @server.getDocumentById(@name, designName)
88
90
  return ShyCouch::Data::Design.new(designName).merge! doc
89
91
  end
90
92
  def all_docs
91
- get_document_by_id('_all_docs').rows.map { |doc|
92
- get_document_by_id(doc["id"])
93
+ getDocumentById('_all_docs').rows.map { |doc|
94
+ getDocumentById(doc["id"])
93
95
  }
94
96
  end
95
97
  def uri
@@ -125,7 +127,7 @@ module ShyCouch
125
127
  # build query string from the options
126
128
  uri = "_design/#{design_name}/_view/#{view_name}"
127
129
  uri += "?#{query_string opts}" if opts.length > 0
128
- result = ShyCouch::Data::ViewResultHandler.init(get_document_by_id(uri))
130
+ result = ShyCouch::Data::ViewResultHandler.init(getDocumentById(uri))
129
131
  if opts.has_key? :key and result.kind_of? ShyCouch::Data::CouchDocumentCollection #result.length == 1
130
132
  # Return it as a document if it was a key query
131
133
  return result[0]
@@ -180,7 +182,7 @@ module ShyCouch
180
182
  rescue ShyCouch::DesignConflict => e
181
183
  # Get the rev of the existing one, then try again!
182
184
  # If that fails, it should still throw an error
183
- existing_design = get_document_by_id design._id
185
+ existing_design = getDocumentById design._id
184
186
  design._rev = existing_design._rev
185
187
  design._rev = push_document!(design)["rev"]
186
188
  end
@@ -189,7 +191,7 @@ module ShyCouch
189
191
 
190
192
  def view(design, view_obj)
191
193
  url = "#{design._id}/_view/#{view_obj.name}"
192
- get_document_by_id(url)
194
+ getDocumentById(url)
193
195
  end
194
196
 
195
197
  private
@@ -230,6 +232,8 @@ module ShyCouch
230
232
  if settings["db"]["user"]
231
233
  raise ShyCouch::DatabaseError unless settings["db"]["password"]
232
234
  end
235
+ rescue NoMethodError
236
+ raise ShyCouch::DatabaseError
233
237
  end
234
238
 
235
239
  class CouchServerConnection
@@ -260,6 +264,7 @@ module ShyCouch
260
264
  end
261
265
 
262
266
  def req(kind, uri, data = nil)
267
+ # TODO - remove this
263
268
  raise TypeError unless [:get,:delete,:put,:post].include?(kind) # only support these 4 request methods currently
264
269
  if @user and @password
265
270
  res = couch_req_with_auth kind, uri, data
@@ -308,7 +313,7 @@ module ShyCouch
308
313
  pull_all_doc_ids(db_name).map { |id| Data::CouchDocument.new(req(:get,"/#{db_name}/#{id}")) }
309
314
  end
310
315
 
311
- def get_document_by_id(db_name, id)
316
+ def getDocumentById(db_name, id)
312
317
  document = Data::CouchDocument.new(:data => req(:get,"/#{db_name}/#{id}"))
313
318
  end
314
319
  def pull_document(db_name, document)
@@ -321,7 +326,7 @@ module ShyCouch
321
326
  raise TypeError unless document.kind_of?(ShyCouch::Data::CouchDocument)
322
327
  raise JSON::GeneratorError unless document.valid?
323
328
  if document["_rev"]
324
- return req(:put, "/#{db_name}/#{document._id}?rev=#{document._rev}/", document.to_json)
329
+ return req(:put, "/#{db_name}/#{document._id}?rev=#{document._rev}", document.to_json)
325
330
  elsif document["_id"]
326
331
  return req(:put, "/#{db_name}/#{document._id}", document.to_json)
327
332
  else
@@ -130,43 +130,44 @@ class CouchDocumentTests
130
130
  end
131
131
 
132
132
  def test_push_new_documents
133
- @valid_documents.each { |doc|
133
+ @valid_documents.each { |doc|
134
134
  # put the document on the server, grab the server's response
135
- res = doc.push!(:push_to => $couchdb)
135
+ res = doc.push! :push_to => $couchdb
136
136
  # check that the server included "ok"=>true in its response
137
- assert(res["ok"])
137
+ assert(res["ok"])
138
138
  # check that the doc now has an id and a rev
139
- assert(doc["_id"])
140
- assert(doc["_rev"])
139
+ assert(doc["_id"])
140
+ assert(doc["_rev"])
141
141
  # get the new doc
142
- newDoc = $couchdb.pull_document(doc)
142
+ newDoc = $couchdb.pull_document(doc)
143
143
  # test equality of all the attributes aside from id and rev on the new document
144
- doc.attr_keys.each { |k|
145
- assert_equal(doc["k"], newDoc["k"])
146
- }
147
- }
144
+ doc.attr_keys.each { |k|
145
+ assert_equal(doc["k"], newDoc["k"])
146
+ }
147
+ }
148
148
  end
149
149
 
150
150
  def test_change_existing_documents
151
151
  @existing_valid_documents.each { |doc|
152
152
  # add some more attributes
153
- assert(doc._rev)
153
+ doc = doc.pull! :pull_from => $couchdb
154
+ assert(doc["_rev"])
154
155
  doc["owner"] = "the guvvmint"
155
156
  doc["buttonCount"] = nil
156
157
  doc["friends"] = nil
157
158
  doc.buttonCount = 5
158
159
  doc.friends = ["alan", "alex", "all me other mates"]
159
-
160
160
  res = doc.push!(:push_to => $couchdb)
161
161
  assert(res["ok"])
162
-
163
- # pull it from the database again
164
162
  checkDoc = $couchdb.pull_document(doc)
165
-
163
+
166
164
  # check that the one from the database has all the new attributes
167
165
  assert_equal(doc.owner, checkDoc.owner)
168
166
  assert_equal(doc.buttonCount, checkDoc.buttonCount)
169
167
  assert_equal(doc.friends, checkDoc.friends)
168
+
169
+
170
+ # pull it from the database again
170
171
  }
171
172
  end
172
173
 
@@ -47,7 +47,7 @@ class TestCouchDBAPI < Test::Unit::TestCase
47
47
  # should throw an error when the settings hash is invalid
48
48
  invalid_settings.each do |settings|
49
49
  assert_raises ShyCouch::DatabaseError do
50
- ShyCouch::CouchDatabase.new settings
50
+ ShyCouch::getDB settings
51
51
  end
52
52
  assert_raises ArgumentError do
53
53
  ShyCouch::CouchDatabase.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ShyCouch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-12-01 00:00:00.000000000Z
14
+ date: 2011-12-02 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70205277506120 !ruby/object:Gem::Requirement
18
+ requirement: &70284349002760 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70205277506120
26
+ version_requirements: *70284349002760
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sourcify
29
- requirement: &70205281690720 !ruby/object:Gem::Requirement
29
+ requirement: &70284349002280 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: 0.5.0
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70205281690720
37
+ version_requirements: *70284349002280
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: ShyRubyJS
40
- requirement: &70205281690240 !ruby/object:Gem::Requirement
40
+ requirement: &70284349001800 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: 0.2.0
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70205281690240
48
+ version_requirements: *70284349001800
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: bundler
51
- requirement: &70205281689760 !ruby/object:Gem::Requirement
51
+ requirement: &70284349001320 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ~>
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 1.0.0
57
57
  type: :development
58
58
  prerelease: false
59
- version_requirements: *70205281689760
59
+ version_requirements: *70284349001320
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: jeweler
62
- requirement: &70205281689280 !ruby/object:Gem::Requirement
62
+ requirement: &70284349000840 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ~>
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 1.6.4
68
68
  type: :development
69
69
  prerelease: false
70
- version_requirements: *70205281689280
70
+ version_requirements: *70284349000840
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rcov
73
- requirement: &70205281688800 !ruby/object:Gem::Requirement
73
+ requirement: &70284349000360 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *70205281688800
81
+ version_requirements: *70284349000360
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: ShyRubyJS
84
- requirement: &70205281688320 !ruby/object:Gem::Requirement
84
+ requirement: &70284348999880 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: 0.2.0
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *70205281688320
92
+ version_requirements: *70284348999880
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rest-client
95
- requirement: &70205281687840 !ruby/object:Gem::Requirement
95
+ requirement: &70284348999400 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ! '>='
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: 1.6.7
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *70205281687840
103
+ version_requirements: *70284348999400
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: sourcify
106
- requirement: &70205281687360 !ruby/object:Gem::Requirement
106
+ requirement: &70284348998920 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: '0'
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *70205281687360
114
+ version_requirements: *70284348998920
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: mime-types
117
- requirement: &70205281686880 !ruby/object:Gem::Requirement
117
+ requirement: &70284348998440 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ! '>='
@@ -122,7 +122,7 @@ dependencies:
122
122
  version: '0'
123
123
  type: :runtime
124
124
  prerelease: false
125
- version_requirements: *70205281686880
125
+ version_requirements: *70284348998440
126
126
  description: Ruby API for CouchDB, designed to work with the Camping micro-framework.
127
127
  email: danbryan@gmail.com
128
128
  executables: []
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
162
  version: '0'
163
163
  segments:
164
164
  - 0
165
- hash: -517428942183322011
165
+ hash: -2484123326453231349
166
166
  required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements: