samflores-couchrest 0.2.1 → 0.12.3

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.
Files changed (66) hide show
  1. data/README.md +10 -34
  2. data/Rakefile +5 -2
  3. data/bin/couchdir +20 -0
  4. data/examples/model/example.rb +13 -19
  5. data/examples/word_count/word_count.rb +24 -3
  6. data/examples/word_count/word_count_query.rb +6 -7
  7. data/lib/couchrest/core/database.rb +49 -126
  8. data/lib/couchrest/core/document.rb +25 -58
  9. data/lib/couchrest/core/model.rb +612 -0
  10. data/lib/couchrest/core/server.rb +10 -47
  11. data/lib/couchrest/core/validations.rb +328 -0
  12. data/lib/couchrest/monkeypatches.rb +0 -95
  13. data/lib/couchrest.rb +10 -57
  14. data/spec/couchrest/core/database_spec.rb +68 -183
  15. data/spec/couchrest/core/design_spec.rb +1 -1
  16. data/spec/couchrest/core/document_spec.rb +104 -285
  17. data/spec/couchrest/core/model_spec.rb +855 -0
  18. data/spec/couchrest/helpers/pager_spec.rb +1 -1
  19. data/spec/spec_helper.rb +7 -13
  20. metadata +17 -83
  21. data/examples/word_count/word_count_views.rb +0 -26
  22. data/lib/couchrest/core/response.rb +0 -16
  23. data/lib/couchrest/mixins/attachments.rb +0 -31
  24. data/lib/couchrest/mixins/callbacks.rb +0 -483
  25. data/lib/couchrest/mixins/design_doc.rb +0 -64
  26. data/lib/couchrest/mixins/document_queries.rb +0 -48
  27. data/lib/couchrest/mixins/extended_attachments.rb +0 -68
  28. data/lib/couchrest/mixins/extended_document_mixins.rb +0 -6
  29. data/lib/couchrest/mixins/properties.rb +0 -125
  30. data/lib/couchrest/mixins/validation.rb +0 -234
  31. data/lib/couchrest/mixins/views.rb +0 -168
  32. data/lib/couchrest/mixins.rb +0 -4
  33. data/lib/couchrest/more/casted_model.rb +0 -28
  34. data/lib/couchrest/more/extended_document.rb +0 -217
  35. data/lib/couchrest/more/property.rb +0 -40
  36. data/lib/couchrest/support/blank.rb +0 -42
  37. data/lib/couchrest/support/class.rb +0 -191
  38. data/lib/couchrest/validation/auto_validate.rb +0 -163
  39. data/lib/couchrest/validation/contextual_validators.rb +0 -78
  40. data/lib/couchrest/validation/validation_errors.rb +0 -118
  41. data/lib/couchrest/validation/validators/absent_field_validator.rb +0 -74
  42. data/lib/couchrest/validation/validators/confirmation_validator.rb +0 -99
  43. data/lib/couchrest/validation/validators/format_validator.rb +0 -117
  44. data/lib/couchrest/validation/validators/formats/email.rb +0 -66
  45. data/lib/couchrest/validation/validators/formats/url.rb +0 -43
  46. data/lib/couchrest/validation/validators/generic_validator.rb +0 -120
  47. data/lib/couchrest/validation/validators/length_validator.rb +0 -134
  48. data/lib/couchrest/validation/validators/method_validator.rb +0 -89
  49. data/lib/couchrest/validation/validators/numeric_validator.rb +0 -104
  50. data/lib/couchrest/validation/validators/required_field_validator.rb +0 -109
  51. data/spec/couchrest/core/server_spec.rb +0 -35
  52. data/spec/couchrest/more/casted_extended_doc_spec.rb +0 -40
  53. data/spec/couchrest/more/casted_model_spec.rb +0 -98
  54. data/spec/couchrest/more/extended_doc_attachment_spec.rb +0 -130
  55. data/spec/couchrest/more/extended_doc_spec.rb +0 -509
  56. data/spec/couchrest/more/extended_doc_view_spec.rb +0 -207
  57. data/spec/couchrest/more/property_spec.rb +0 -130
  58. data/spec/couchrest/support/class_spec.rb +0 -59
  59. data/spec/fixtures/more/article.rb +0 -34
  60. data/spec/fixtures/more/card.rb +0 -20
  61. data/spec/fixtures/more/course.rb +0 -14
  62. data/spec/fixtures/more/event.rb +0 -6
  63. data/spec/fixtures/more/invoice.rb +0 -17
  64. data/spec/fixtures/more/person.rb +0 -8
  65. data/spec/fixtures/more/question.rb +0 -6
  66. data/spec/fixtures/more/service.rb +0 -12
@@ -60,7 +60,7 @@ describe CouchRest::Pager do
60
60
  @docs << ({:number => (i % 10)})
61
61
  end
62
62
  @db.bulk_save(@docs)
63
- @db.save_doc({
63
+ @db.save({
64
64
  '_id' => '_design/magic',
65
65
  'views' => {
66
66
  'number' => {
data/spec/spec_helper.rb CHANGED
@@ -1,26 +1,20 @@
1
1
  require "rubygems"
2
2
  require "spec" # Satisfies Autotest and anyone else not using the Rake tasks
3
3
 
4
- require File.join(File.dirname(__FILE__), '..','lib','couchrest')
5
- # check the following file to see how to use the spec'd features.
4
+ require File.dirname(__FILE__) + '/../lib/couchrest'
6
5
 
7
6
  unless defined?(FIXTURE_PATH)
8
- FIXTURE_PATH = File.join(File.dirname(__FILE__), '/fixtures')
9
- SCRATCH_PATH = File.join(File.dirname(__FILE__), '/tmp')
7
+ FIXTURE_PATH = File.dirname(__FILE__) + '/fixtures'
8
+ SCRATCH_PATH = File.dirname(__FILE__) + '/tmp'
10
9
 
11
10
  COUCHHOST = "http://127.0.0.1:5984"
12
- TESTDB = 'couchrest-test'
13
- TEST_SERVER = CouchRest.new
14
- TEST_SERVER.default_database = TESTDB
15
- end
16
-
17
- class Basic < CouchRest::ExtendedDocument
18
- use_database TEST_SERVER.default_database
11
+ TESTDB = 'couchrest-test'
19
12
  end
20
13
 
21
14
  def reset_test_db!
22
- cr = TEST_SERVER
15
+ cr = CouchRest.new(COUCHHOST)
23
16
  db = cr.database(TESTDB)
24
- db.recreate! rescue nil
17
+ db.delete! rescue nil
18
+ db = cr.create_db(TESTDB) rescue nin
25
19
  db
26
20
  end
metadata CHANGED
@@ -1,21 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: samflores-couchrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - J. Chris Anderson
8
- - Matt Aimonetti
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
 
13
12
  date: 2008-11-22 00:00:00 -08:00
14
- default_executable:
13
+ default_executable: couchdir
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: json
18
- type: :runtime
19
17
  version_requirement:
20
18
  version_requirements: !ruby/object:Gem::Requirement
21
19
  requirements:
@@ -25,7 +23,6 @@ dependencies:
25
23
  version:
26
24
  - !ruby/object:Gem::Dependency
27
25
  name: rest-client
28
- type: :runtime
29
26
  version_requirement:
30
27
  version_requirements: !ruby/object:Gem::Requirement
31
28
  requirements:
@@ -35,7 +32,6 @@ dependencies:
35
32
  version:
36
33
  - !ruby/object:Gem::Dependency
37
34
  name: mime-types
38
- type: :runtime
39
35
  version_requirement:
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
37
  requirements:
@@ -43,10 +39,19 @@ dependencies:
43
39
  - !ruby/object:Gem::Version
44
40
  version: "1.15"
45
41
  version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: extlib
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.9.6
50
+ version:
46
51
  description: CouchRest provides a simple interface on top of CouchDB's RESTful HTTP API, as well as including some utility scripts for managing views and attachments.
47
52
  email: jchris@apache.org
48
- executables: []
49
-
53
+ executables:
54
+ - couchdir
50
55
  extensions: []
51
56
 
52
57
  extra_rdoc_files:
@@ -58,6 +63,7 @@ files:
58
63
  - README.md
59
64
  - Rakefile
60
65
  - THANKS.md
66
+ - bin/couchdir
61
67
  - examples/model
62
68
  - examples/model/example.rb
63
69
  - examples/word_count
@@ -74,7 +80,6 @@ files:
74
80
  - examples/word_count/views/word_count/count-reduce.js
75
81
  - examples/word_count/word_count.rb
76
82
  - examples/word_count/word_count_query.rb
77
- - examples/word_count/word_count_views.rb
78
83
  - lib/couchrest
79
84
  - lib/couchrest/commands
80
85
  - lib/couchrest/commands/generate.rb
@@ -83,47 +88,14 @@ files:
83
88
  - lib/couchrest/core/database.rb
84
89
  - lib/couchrest/core/design.rb
85
90
  - lib/couchrest/core/document.rb
86
- - lib/couchrest/core/response.rb
91
+ - lib/couchrest/core/model.rb
87
92
  - lib/couchrest/core/server.rb
93
+ - lib/couchrest/core/validations.rb
88
94
  - lib/couchrest/core/view.rb
89
95
  - lib/couchrest/helper
90
96
  - lib/couchrest/helper/pager.rb
91
97
  - lib/couchrest/helper/streamer.rb
92
- - lib/couchrest/mixins
93
- - lib/couchrest/mixins/attachments.rb
94
- - lib/couchrest/mixins/callbacks.rb
95
- - lib/couchrest/mixins/design_doc.rb
96
- - lib/couchrest/mixins/document_queries.rb
97
- - lib/couchrest/mixins/extended_attachments.rb
98
- - lib/couchrest/mixins/extended_document_mixins.rb
99
- - lib/couchrest/mixins/properties.rb
100
- - lib/couchrest/mixins/validation.rb
101
- - lib/couchrest/mixins/views.rb
102
- - lib/couchrest/mixins.rb
103
98
  - lib/couchrest/monkeypatches.rb
104
- - lib/couchrest/more
105
- - lib/couchrest/more/casted_model.rb
106
- - lib/couchrest/more/extended_document.rb
107
- - lib/couchrest/more/property.rb
108
- - lib/couchrest/support
109
- - lib/couchrest/support/blank.rb
110
- - lib/couchrest/support/class.rb
111
- - lib/couchrest/validation
112
- - lib/couchrest/validation/auto_validate.rb
113
- - lib/couchrest/validation/contextual_validators.rb
114
- - lib/couchrest/validation/validation_errors.rb
115
- - lib/couchrest/validation/validators
116
- - lib/couchrest/validation/validators/absent_field_validator.rb
117
- - lib/couchrest/validation/validators/confirmation_validator.rb
118
- - lib/couchrest/validation/validators/format_validator.rb
119
- - lib/couchrest/validation/validators/formats
120
- - lib/couchrest/validation/validators/formats/email.rb
121
- - lib/couchrest/validation/validators/formats/url.rb
122
- - lib/couchrest/validation/validators/generic_validator.rb
123
- - lib/couchrest/validation/validators/length_validator.rb
124
- - lib/couchrest/validation/validators/method_validator.rb
125
- - lib/couchrest/validation/validators/numeric_validator.rb
126
- - lib/couchrest/validation/validators/required_field_validator.rb
127
99
  - lib/couchrest.rb
128
100
  - spec/couchrest
129
101
  - spec/couchrest/core
@@ -131,53 +103,15 @@ files:
131
103
  - spec/couchrest/core/database_spec.rb
132
104
  - spec/couchrest/core/design_spec.rb
133
105
  - spec/couchrest/core/document_spec.rb
134
- - spec/couchrest/core/server_spec.rb
106
+ - spec/couchrest/core/model_spec.rb
135
107
  - spec/couchrest/helpers
136
108
  - spec/couchrest/helpers/pager_spec.rb
137
109
  - spec/couchrest/helpers/streamer_spec.rb
138
- - spec/couchrest/more
139
- - spec/couchrest/more/casted_extended_doc_spec.rb
140
- - spec/couchrest/more/casted_model_spec.rb
141
- - spec/couchrest/more/extended_doc_attachment_spec.rb
142
- - spec/couchrest/more/extended_doc_spec.rb
143
- - spec/couchrest/more/extended_doc_view_spec.rb
144
- - spec/couchrest/more/property_spec.rb
145
- - spec/couchrest/support
146
- - spec/couchrest/support/class_spec.rb
147
110
  - spec/fixtures
148
111
  - spec/fixtures/attachments
149
112
  - spec/fixtures/attachments/couchdb.png
150
113
  - spec/fixtures/attachments/README
151
114
  - spec/fixtures/attachments/test.html
152
- - spec/fixtures/couchapp
153
- - spec/fixtures/couchapp/_attachments
154
- - spec/fixtures/couchapp/_attachments/index.html
155
- - spec/fixtures/couchapp/doc.json
156
- - spec/fixtures/couchapp/foo
157
- - spec/fixtures/couchapp/foo/bar.txt
158
- - spec/fixtures/couchapp/foo/test.json
159
- - spec/fixtures/couchapp/test.json
160
- - spec/fixtures/couchapp/views
161
- - spec/fixtures/couchapp/views/example-map.js
162
- - spec/fixtures/couchapp/views/example-reduce.js
163
- - spec/fixtures/couchapp-test
164
- - spec/fixtures/couchapp-test/my-app
165
- - spec/fixtures/couchapp-test/my-app/_attachments
166
- - spec/fixtures/couchapp-test/my-app/_attachments/index.html
167
- - spec/fixtures/couchapp-test/my-app/foo
168
- - spec/fixtures/couchapp-test/my-app/foo/bar.txt
169
- - spec/fixtures/couchapp-test/my-app/views
170
- - spec/fixtures/couchapp-test/my-app/views/example-map.js
171
- - spec/fixtures/couchapp-test/my-app/views/example-reduce.js
172
- - spec/fixtures/more
173
- - spec/fixtures/more/article.rb
174
- - spec/fixtures/more/card.rb
175
- - spec/fixtures/more/course.rb
176
- - spec/fixtures/more/event.rb
177
- - spec/fixtures/more/invoice.rb
178
- - spec/fixtures/more/person.rb
179
- - spec/fixtures/more/question.rb
180
- - spec/fixtures/more/service.rb
181
115
  - spec/fixtures/views
182
116
  - spec/fixtures/views/lib.js
183
117
  - spec/fixtures/views/test_view
@@ -1,26 +0,0 @@
1
- require 'rubygems'
2
- require 'couchrest'
3
-
4
- couch = CouchRest.new("http://127.0.0.1:5984")
5
- db = couch.database('word-count-example')
6
-
7
- word_count = {
8
- :map => 'function(doc){
9
- var words = doc.text.split(/\W/);
10
- words.forEach(function(word){
11
- if (word.length > 0) emit([word,doc.title],1);
12
- });
13
- }',
14
- :reduce => 'function(key,combine){
15
- return sum(combine);
16
- }'
17
- }
18
-
19
- db.delete db.get("_design/word_count") rescue nil
20
-
21
- db.save({
22
- "_id" => "_design/word_count",
23
- :views => {
24
- :words => word_count
25
- }
26
- })
@@ -1,16 +0,0 @@
1
- module CouchRest
2
- class Response < Hash
3
- def initialize(pkeys = {})
4
- pkeys ||= {}
5
- pkeys.each do |k,v|
6
- self[k.to_s] = v
7
- end
8
- end
9
- def []=(key, value)
10
- super(key.to_s, value)
11
- end
12
- def [](key)
13
- super(key.to_s)
14
- end
15
- end
16
- end
@@ -1,31 +0,0 @@
1
- module CouchRest
2
- module Mixins
3
- module Attachments
4
-
5
- # saves an attachment directly to couchdb
6
- def put_attachment(name, file, options={})
7
- raise ArgumentError, "doc must be saved" unless self.rev
8
- raise ArgumentError, "doc.database required to put_attachment" unless database
9
- result = database.put_attachment(self, name, file, options)
10
- self['_rev'] = result['rev']
11
- result['ok']
12
- end
13
-
14
- # returns an attachment's data
15
- def fetch_attachment(name)
16
- raise ArgumentError, "doc must be saved" unless self.rev
17
- raise ArgumentError, "doc.database required to put_attachment" unless database
18
- database.fetch_attachment(self, name)
19
- end
20
-
21
- # deletes an attachment directly from couchdb
22
- def delete_attachment(name)
23
- raise ArgumentError, "doc.database required to delete_attachment" unless database
24
- result = database.delete_attachment(self, name)
25
- self['_rev'] = result['rev']
26
- result['ok']
27
- end
28
-
29
- end
30
- end
31
- end