samlown-couchrest 0.37.2 → 1.0.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.
Files changed (78) hide show
  1. data/README.md +10 -4
  2. data/Rakefile +1 -1
  3. data/history.txt +8 -0
  4. data/lib/couchrest.rb +27 -49
  5. data/lib/couchrest/{core/database.rb → database.rb} +6 -11
  6. data/lib/couchrest/{core/design.rb → design.rb} +2 -2
  7. data/lib/couchrest/{core/document.rb → document.rb} +1 -1
  8. data/lib/couchrest/helper/attachments.rb +29 -0
  9. data/lib/couchrest/middlewares/logger.rb +3 -3
  10. data/lib/couchrest/monkeypatches.rb +1 -71
  11. data/lib/couchrest/{core/response.rb → response.rb} +0 -0
  12. data/lib/couchrest/{core/rest_api.rb → rest_api.rb} +9 -6
  13. data/lib/couchrest/{core/server.rb → server.rb} +0 -0
  14. data/spec/couchrest/{core/couchrest_spec.rb → couchrest_spec.rb} +16 -3
  15. data/spec/couchrest/{core/database_spec.rb → database_spec.rb} +2 -2
  16. data/spec/couchrest/{core/design_spec.rb → design_spec.rb} +2 -2
  17. data/spec/couchrest/{core/document_spec.rb → document_spec.rb} +1 -1
  18. data/spec/couchrest/{core/server_spec.rb → server_spec.rb} +2 -2
  19. data/spec/spec.opts +0 -1
  20. data/spec/spec_helper.rb +0 -4
  21. metadata +24 -113
  22. data/couchrest.gemspec +0 -183
  23. data/examples/model/example.rb +0 -144
  24. data/lib/couchrest/core/adapters/restclient.rb +0 -35
  25. data/lib/couchrest/core/http_abstraction.rb +0 -48
  26. data/lib/couchrest/core/view.rb +0 -4
  27. data/lib/couchrest/mixins.rb +0 -4
  28. data/lib/couchrest/mixins/attachments.rb +0 -31
  29. data/lib/couchrest/mixins/attribute_protection.rb +0 -74
  30. data/lib/couchrest/mixins/callbacks.rb +0 -532
  31. data/lib/couchrest/mixins/class_proxy.rb +0 -124
  32. data/lib/couchrest/mixins/collection.rb +0 -260
  33. data/lib/couchrest/mixins/design_doc.rb +0 -103
  34. data/lib/couchrest/mixins/document_queries.rb +0 -80
  35. data/lib/couchrest/mixins/extended_attachments.rb +0 -70
  36. data/lib/couchrest/mixins/extended_document_mixins.rb +0 -9
  37. data/lib/couchrest/mixins/properties.rb +0 -154
  38. data/lib/couchrest/mixins/validation.rb +0 -246
  39. data/lib/couchrest/mixins/views.rb +0 -173
  40. data/lib/couchrest/more/casted_array.rb +0 -25
  41. data/lib/couchrest/more/casted_model.rb +0 -58
  42. data/lib/couchrest/more/extended_document.rb +0 -310
  43. data/lib/couchrest/more/property.rb +0 -50
  44. data/lib/couchrest/more/typecast.rb +0 -175
  45. data/lib/couchrest/support/blank.rb +0 -42
  46. data/lib/couchrest/support/rails.rb +0 -42
  47. data/lib/couchrest/validation/auto_validate.rb +0 -157
  48. data/lib/couchrest/validation/contextual_validators.rb +0 -78
  49. data/lib/couchrest/validation/validation_errors.rb +0 -125
  50. data/lib/couchrest/validation/validators/absent_field_validator.rb +0 -74
  51. data/lib/couchrest/validation/validators/confirmation_validator.rb +0 -107
  52. data/lib/couchrest/validation/validators/format_validator.rb +0 -122
  53. data/lib/couchrest/validation/validators/formats/email.rb +0 -66
  54. data/lib/couchrest/validation/validators/formats/url.rb +0 -43
  55. data/lib/couchrest/validation/validators/generic_validator.rb +0 -120
  56. data/lib/couchrest/validation/validators/length_validator.rb +0 -139
  57. data/lib/couchrest/validation/validators/method_validator.rb +0 -89
  58. data/lib/couchrest/validation/validators/numeric_validator.rb +0 -109
  59. data/lib/couchrest/validation/validators/required_field_validator.rb +0 -114
  60. data/spec/couchrest/more/attribute_protection_spec.rb +0 -150
  61. data/spec/couchrest/more/casted_extended_doc_spec.rb +0 -79
  62. data/spec/couchrest/more/casted_model_spec.rb +0 -406
  63. data/spec/couchrest/more/extended_doc_attachment_spec.rb +0 -135
  64. data/spec/couchrest/more/extended_doc_inherited_spec.rb +0 -40
  65. data/spec/couchrest/more/extended_doc_spec.rb +0 -808
  66. data/spec/couchrest/more/extended_doc_subclass_spec.rb +0 -98
  67. data/spec/couchrest/more/extended_doc_view_spec.rb +0 -462
  68. data/spec/couchrest/more/property_spec.rb +0 -628
  69. data/spec/fixtures/more/article.rb +0 -35
  70. data/spec/fixtures/more/card.rb +0 -22
  71. data/spec/fixtures/more/cat.rb +0 -20
  72. data/spec/fixtures/more/course.rb +0 -22
  73. data/spec/fixtures/more/event.rb +0 -8
  74. data/spec/fixtures/more/invoice.rb +0 -17
  75. data/spec/fixtures/more/person.rb +0 -9
  76. data/spec/fixtures/more/question.rb +0 -6
  77. data/spec/fixtures/more/service.rb +0 -12
  78. data/spec/fixtures/more/user.rb +0 -22
@@ -1,4 +1,4 @@
1
- require File.expand_path("../../../spec_helper", __FILE__)
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
3
  describe CouchRest::Database do
4
4
  before(:each) do
@@ -391,7 +391,7 @@ describe CouchRest::Database do
391
391
 
392
392
  it "should force a delete even if we get a 409" do
393
393
  @doc['new_attribute'] = 'something new'
394
- @db.put_attachment(@doc, 'test', File.open(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'attachments', 'test.html')).read)
394
+ @db.put_attachment(@doc, 'test', File.open(File.join(FIXTURE_PATH, 'attachments', 'test.html')).read)
395
395
  # at this point the revision number changed, if we try to save doc one more time
396
396
  # we would get a 409.
397
397
  lambda{ @db.save_doc(@doc) }.should raise_error
@@ -1,4 +1,4 @@
1
- require File.expand_path("../../../spec_helper", __FILE__)
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
3
  describe CouchRest::Design do
4
4
 
@@ -135,4 +135,4 @@ describe CouchRest::Design do
135
135
  end
136
136
  end
137
137
 
138
- end
138
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path("../../../spec_helper", __FILE__)
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
3
  class Video < CouchRest::Document; end
4
4
 
@@ -1,4 +1,4 @@
1
- require File.expand_path("../../../spec_helper", __FILE__)
1
+ require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
3
  describe CouchRest::Server do
4
4
 
@@ -32,4 +32,4 @@ describe CouchRest::Server do
32
32
  end
33
33
  end
34
34
 
35
- end
35
+ end
@@ -3,4 +3,3 @@
3
3
  progress
4
4
  --loadby
5
5
  mtime
6
- --reverse
@@ -16,10 +16,6 @@ unless defined?(FIXTURE_PATH)
16
16
  DB = TEST_SERVER.database(TESTDB)
17
17
  end
18
18
 
19
- class Basic < CouchRest::ExtendedDocument
20
- use_database TEST_SERVER.default_database
21
- end
22
-
23
19
  def reset_test_db!
24
20
  DB.recreate! rescue nil
25
21
  DB
metadata CHANGED
@@ -3,10 +3,10 @@ name: samlown-couchrest
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
+ - 1
6
7
  - 0
7
- - 37
8
- - 2
9
- version: 0.37.2
8
+ - 0
9
+ version: 1.0.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - J. Chris Anderson
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-04-05 00:00:00 +00:00
20
+ date: 2010-05-10 00:00:00 +02:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -33,19 +33,6 @@ dependencies:
33
33
  version: "0.5"
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: mime-types
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 15
46
- version: "1.15"
47
- type: :runtime
48
- version_requirements: *id002
49
36
  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.
50
37
  email: jchris@apache.org
51
38
  executables: []
@@ -61,8 +48,6 @@ files:
61
48
  - README.md
62
49
  - Rakefile
63
50
  - THANKS.md
64
- - couchrest.gemspec
65
- - examples/model/example.rb
66
51
  - examples/word_count/markov
67
52
  - examples/word_count/views/books/chunked-map.js
68
53
  - examples/word_count/views/books/united-map.js
@@ -77,83 +62,29 @@ files:
77
62
  - lib/couchrest.rb
78
63
  - lib/couchrest/commands/generate.rb
79
64
  - lib/couchrest/commands/push.rb
80
- - lib/couchrest/core/adapters/restclient.rb
81
- - lib/couchrest/core/database.rb
82
- - lib/couchrest/core/design.rb
83
- - lib/couchrest/core/document.rb
84
- - lib/couchrest/core/http_abstraction.rb
85
- - lib/couchrest/core/response.rb
86
- - lib/couchrest/core/rest_api.rb
87
- - lib/couchrest/core/server.rb
88
- - lib/couchrest/core/view.rb
65
+ - lib/couchrest/database.rb
66
+ - lib/couchrest/design.rb
67
+ - lib/couchrest/document.rb
68
+ - lib/couchrest/helper/attachments.rb
89
69
  - lib/couchrest/helper/pager.rb
90
70
  - lib/couchrest/helper/streamer.rb
91
71
  - lib/couchrest/helper/upgrade.rb
92
72
  - lib/couchrest/middlewares/logger.rb
93
- - lib/couchrest/mixins.rb
94
- - lib/couchrest/mixins/attachments.rb
95
- - lib/couchrest/mixins/attribute_protection.rb
96
- - lib/couchrest/mixins/callbacks.rb
97
- - lib/couchrest/mixins/class_proxy.rb
98
- - lib/couchrest/mixins/collection.rb
99
- - lib/couchrest/mixins/design_doc.rb
100
- - lib/couchrest/mixins/document_queries.rb
101
- - lib/couchrest/mixins/extended_attachments.rb
102
- - lib/couchrest/mixins/extended_document_mixins.rb
103
- - lib/couchrest/mixins/properties.rb
104
- - lib/couchrest/mixins/validation.rb
105
- - lib/couchrest/mixins/views.rb
106
73
  - lib/couchrest/monkeypatches.rb
107
- - lib/couchrest/more/casted_array.rb
108
- - lib/couchrest/more/casted_model.rb
109
- - lib/couchrest/more/extended_document.rb
110
- - lib/couchrest/more/property.rb
111
- - lib/couchrest/more/typecast.rb
112
- - lib/couchrest/support/blank.rb
74
+ - lib/couchrest/response.rb
75
+ - lib/couchrest/rest_api.rb
76
+ - lib/couchrest/server.rb
113
77
  - lib/couchrest/support/class.rb
114
- - lib/couchrest/support/rails.rb
115
- - lib/couchrest/validation/auto_validate.rb
116
- - lib/couchrest/validation/contextual_validators.rb
117
- - lib/couchrest/validation/validation_errors.rb
118
- - lib/couchrest/validation/validators/absent_field_validator.rb
119
- - lib/couchrest/validation/validators/confirmation_validator.rb
120
- - lib/couchrest/validation/validators/format_validator.rb
121
- - lib/couchrest/validation/validators/formats/email.rb
122
- - lib/couchrest/validation/validators/formats/url.rb
123
- - lib/couchrest/validation/validators/generic_validator.rb
124
- - lib/couchrest/validation/validators/length_validator.rb
125
- - lib/couchrest/validation/validators/method_validator.rb
126
- - lib/couchrest/validation/validators/numeric_validator.rb
127
- - lib/couchrest/validation/validators/required_field_validator.rb
128
- - spec/couchrest/core/couchrest_spec.rb
129
- - spec/couchrest/core/database_spec.rb
130
- - spec/couchrest/core/design_spec.rb
131
- - spec/couchrest/core/document_spec.rb
132
- - spec/couchrest/core/server_spec.rb
78
+ - spec/couchrest/couchrest_spec.rb
79
+ - spec/couchrest/database_spec.rb
80
+ - spec/couchrest/design_spec.rb
81
+ - spec/couchrest/document_spec.rb
133
82
  - spec/couchrest/helpers/pager_spec.rb
134
83
  - spec/couchrest/helpers/streamer_spec.rb
135
- - spec/couchrest/more/attribute_protection_spec.rb
136
- - spec/couchrest/more/casted_extended_doc_spec.rb
137
- - spec/couchrest/more/casted_model_spec.rb
138
- - spec/couchrest/more/extended_doc_attachment_spec.rb
139
- - spec/couchrest/more/extended_doc_inherited_spec.rb
140
- - spec/couchrest/more/extended_doc_spec.rb
141
- - spec/couchrest/more/extended_doc_subclass_spec.rb
142
- - spec/couchrest/more/extended_doc_view_spec.rb
143
- - spec/couchrest/more/property_spec.rb
84
+ - spec/couchrest/server_spec.rb
144
85
  - spec/fixtures/attachments/README
145
86
  - spec/fixtures/attachments/couchdb.png
146
87
  - spec/fixtures/attachments/test.html
147
- - spec/fixtures/more/article.rb
148
- - spec/fixtures/more/card.rb
149
- - spec/fixtures/more/cat.rb
150
- - spec/fixtures/more/course.rb
151
- - spec/fixtures/more/event.rb
152
- - spec/fixtures/more/invoice.rb
153
- - spec/fixtures/more/person.rb
154
- - spec/fixtures/more/question.rb
155
- - spec/fixtures/more/service.rb
156
- - spec/fixtures/more/user.rb
157
88
  - spec/fixtures/views/lib.js
158
89
  - spec/fixtures/views/test_view/lib.js
159
90
  - spec/fixtures/views/test_view/only-map.js
@@ -194,34 +125,14 @@ signing_key:
194
125
  specification_version: 3
195
126
  summary: Lean and RESTful interface to CouchDB.
196
127
  test_files:
197
- - spec/couchrest/more/extended_doc_attachment_spec.rb
198
- - spec/couchrest/more/casted_extended_doc_spec.rb
199
- - spec/couchrest/more/extended_doc_inherited_spec.rb
200
- - spec/couchrest/more/casted_model_spec.rb
201
- - spec/couchrest/more/extended_doc_view_spec.rb
202
- - spec/couchrest/more/extended_doc_spec.rb
203
- - spec/couchrest/more/property_spec.rb
204
- - spec/couchrest/more/attribute_protection_spec.rb
205
- - spec/couchrest/more/extended_doc_subclass_spec.rb
206
- - spec/couchrest/helpers/streamer_spec.rb
207
- - spec/couchrest/helpers/pager_spec.rb
208
- - spec/couchrest/core/design_spec.rb
209
- - spec/couchrest/core/server_spec.rb
210
- - spec/couchrest/core/couchrest_spec.rb
211
- - spec/couchrest/core/database_spec.rb
212
- - spec/couchrest/core/document_spec.rb
213
- - spec/fixtures/more/person.rb
214
- - spec/fixtures/more/cat.rb
215
- - spec/fixtures/more/card.rb
216
- - spec/fixtures/more/course.rb
217
- - spec/fixtures/more/service.rb
218
- - spec/fixtures/more/article.rb
219
- - spec/fixtures/more/invoice.rb
220
- - spec/fixtures/more/user.rb
221
- - spec/fixtures/more/event.rb
222
- - spec/fixtures/more/question.rb
223
128
  - spec/spec_helper.rb
224
- - examples/word_count/word_count_views.rb
129
+ - spec/couchrest/server_spec.rb
130
+ - spec/couchrest/helpers/pager_spec.rb
131
+ - spec/couchrest/helpers/streamer_spec.rb
132
+ - spec/couchrest/document_spec.rb
133
+ - spec/couchrest/couchrest_spec.rb
134
+ - spec/couchrest/design_spec.rb
135
+ - spec/couchrest/database_spec.rb
225
136
  - examples/word_count/word_count.rb
137
+ - examples/word_count/word_count_views.rb
226
138
  - examples/word_count/word_count_query.rb
227
- - examples/model/example.rb
@@ -1,183 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{couchrest}
8
- s.version = "0.37"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["J. Chris Anderson", "Matt Aimonetti", "Marcos Tapajos", "Will Leinweber"]
12
- s.date = %q{2010-04-05}
13
- s.description = %q{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.}
14
- s.email = %q{jchris@apache.org}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.md",
18
- "THANKS.md"
19
- ]
20
- s.files = [
21
- "LICENSE",
22
- "README.md",
23
- "Rakefile",
24
- "THANKS.md",
25
- "couchrest.gemspec",
26
- "examples/model/example.rb",
27
- "examples/word_count/markov",
28
- "examples/word_count/views/books/chunked-map.js",
29
- "examples/word_count/views/books/united-map.js",
30
- "examples/word_count/views/markov/chain-map.js",
31
- "examples/word_count/views/markov/chain-reduce.js",
32
- "examples/word_count/views/word_count/count-map.js",
33
- "examples/word_count/views/word_count/count-reduce.js",
34
- "examples/word_count/word_count.rb",
35
- "examples/word_count/word_count_query.rb",
36
- "examples/word_count/word_count_views.rb",
37
- "history.txt",
38
- "lib/couchrest.rb",
39
- "lib/couchrest/commands/generate.rb",
40
- "lib/couchrest/commands/push.rb",
41
- "lib/couchrest/core/adapters/restclient.rb",
42
- "lib/couchrest/core/database.rb",
43
- "lib/couchrest/core/design.rb",
44
- "lib/couchrest/core/document.rb",
45
- "lib/couchrest/core/http_abstraction.rb",
46
- "lib/couchrest/core/response.rb",
47
- "lib/couchrest/core/rest_api.rb",
48
- "lib/couchrest/core/server.rb",
49
- "lib/couchrest/core/view.rb",
50
- "lib/couchrest/helper/pager.rb",
51
- "lib/couchrest/helper/streamer.rb",
52
- "lib/couchrest/helper/upgrade.rb",
53
- "lib/couchrest/middlewares/logger.rb",
54
- "lib/couchrest/mixins.rb",
55
- "lib/couchrest/mixins/attachments.rb",
56
- "lib/couchrest/mixins/attribute_protection.rb",
57
- "lib/couchrest/mixins/callbacks.rb",
58
- "lib/couchrest/mixins/class_proxy.rb",
59
- "lib/couchrest/mixins/collection.rb",
60
- "lib/couchrest/mixins/design_doc.rb",
61
- "lib/couchrest/mixins/document_queries.rb",
62
- "lib/couchrest/mixins/extended_attachments.rb",
63
- "lib/couchrest/mixins/extended_document_mixins.rb",
64
- "lib/couchrest/mixins/properties.rb",
65
- "lib/couchrest/mixins/validation.rb",
66
- "lib/couchrest/mixins/views.rb",
67
- "lib/couchrest/monkeypatches.rb",
68
- "lib/couchrest/more/casted_array.rb",
69
- "lib/couchrest/more/casted_model.rb",
70
- "lib/couchrest/more/extended_document.rb",
71
- "lib/couchrest/more/property.rb",
72
- "lib/couchrest/more/typecast.rb",
73
- "lib/couchrest/support/blank.rb",
74
- "lib/couchrest/support/class.rb",
75
- "lib/couchrest/support/rails.rb",
76
- "lib/couchrest/validation/auto_validate.rb",
77
- "lib/couchrest/validation/contextual_validators.rb",
78
- "lib/couchrest/validation/validation_errors.rb",
79
- "lib/couchrest/validation/validators/absent_field_validator.rb",
80
- "lib/couchrest/validation/validators/confirmation_validator.rb",
81
- "lib/couchrest/validation/validators/format_validator.rb",
82
- "lib/couchrest/validation/validators/formats/email.rb",
83
- "lib/couchrest/validation/validators/formats/url.rb",
84
- "lib/couchrest/validation/validators/generic_validator.rb",
85
- "lib/couchrest/validation/validators/length_validator.rb",
86
- "lib/couchrest/validation/validators/method_validator.rb",
87
- "lib/couchrest/validation/validators/numeric_validator.rb",
88
- "lib/couchrest/validation/validators/required_field_validator.rb",
89
- "spec/couchrest/core/couchrest_spec.rb",
90
- "spec/couchrest/core/database_spec.rb",
91
- "spec/couchrest/core/design_spec.rb",
92
- "spec/couchrest/core/document_spec.rb",
93
- "spec/couchrest/core/server_spec.rb",
94
- "spec/couchrest/helpers/pager_spec.rb",
95
- "spec/couchrest/helpers/streamer_spec.rb",
96
- "spec/couchrest/more/attribute_protection_spec.rb",
97
- "spec/couchrest/more/casted_extended_doc_spec.rb",
98
- "spec/couchrest/more/casted_model_spec.rb",
99
- "spec/couchrest/more/extended_doc_attachment_spec.rb",
100
- "spec/couchrest/more/extended_doc_inherited_spec.rb",
101
- "spec/couchrest/more/extended_doc_spec.rb",
102
- "spec/couchrest/more/extended_doc_subclass_spec.rb",
103
- "spec/couchrest/more/extended_doc_view_spec.rb",
104
- "spec/couchrest/more/property_spec.rb",
105
- "spec/fixtures/attachments/README",
106
- "spec/fixtures/attachments/couchdb.png",
107
- "spec/fixtures/attachments/test.html",
108
- "spec/fixtures/more/article.rb",
109
- "spec/fixtures/more/card.rb",
110
- "spec/fixtures/more/cat.rb",
111
- "spec/fixtures/more/course.rb",
112
- "spec/fixtures/more/event.rb",
113
- "spec/fixtures/more/invoice.rb",
114
- "spec/fixtures/more/person.rb",
115
- "spec/fixtures/more/question.rb",
116
- "spec/fixtures/more/service.rb",
117
- "spec/fixtures/more/user.rb",
118
- "spec/fixtures/views/lib.js",
119
- "spec/fixtures/views/test_view/lib.js",
120
- "spec/fixtures/views/test_view/only-map.js",
121
- "spec/fixtures/views/test_view/test-map.js",
122
- "spec/fixtures/views/test_view/test-reduce.js",
123
- "spec/spec.opts",
124
- "spec/spec_helper.rb",
125
- "utils/remap.rb",
126
- "utils/subset.rb"
127
- ]
128
- s.homepage = %q{http://github.com/couchrest/couchrest}
129
- s.rdoc_options = ["--charset=UTF-8"]
130
- s.require_paths = ["lib"]
131
- s.rubygems_version = %q{1.3.6}
132
- s.summary = %q{Lean and RESTful interface to CouchDB.}
133
- s.test_files = [
134
- "spec/couchrest/more/extended_doc_attachment_spec.rb",
135
- "spec/couchrest/more/casted_extended_doc_spec.rb",
136
- "spec/couchrest/more/extended_doc_inherited_spec.rb",
137
- "spec/couchrest/more/casted_model_spec.rb",
138
- "spec/couchrest/more/extended_doc_view_spec.rb",
139
- "spec/couchrest/more/extended_doc_spec.rb",
140
- "spec/couchrest/more/property_spec.rb",
141
- "spec/couchrest/more/attribute_protection_spec.rb",
142
- "spec/couchrest/more/extended_doc_subclass_spec.rb",
143
- "spec/couchrest/helpers/streamer_spec.rb",
144
- "spec/couchrest/helpers/pager_spec.rb",
145
- "spec/couchrest/core/design_spec.rb",
146
- "spec/couchrest/core/server_spec.rb",
147
- "spec/couchrest/core/couchrest_spec.rb",
148
- "spec/couchrest/core/database_spec.rb",
149
- "spec/couchrest/core/document_spec.rb",
150
- "spec/fixtures/more/person.rb",
151
- "spec/fixtures/more/cat.rb",
152
- "spec/fixtures/more/card.rb",
153
- "spec/fixtures/more/course.rb",
154
- "spec/fixtures/more/service.rb",
155
- "spec/fixtures/more/article.rb",
156
- "spec/fixtures/more/invoice.rb",
157
- "spec/fixtures/more/user.rb",
158
- "spec/fixtures/more/event.rb",
159
- "spec/fixtures/more/question.rb",
160
- "spec/spec_helper.rb",
161
- "examples/word_count/word_count_views.rb",
162
- "examples/word_count/word_count.rb",
163
- "examples/word_count/word_count_query.rb",
164
- "examples/model/example.rb"
165
- ]
166
-
167
- if s.respond_to? :specification_version then
168
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
169
- s.specification_version = 3
170
-
171
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
172
- s.add_runtime_dependency(%q<rest-client>, [">= 0.5"])
173
- s.add_runtime_dependency(%q<mime-types>, [">= 1.15"])
174
- else
175
- s.add_dependency(%q<rest-client>, [">= 0.5"])
176
- s.add_dependency(%q<mime-types>, [">= 1.15"])
177
- end
178
- else
179
- s.add_dependency(%q<rest-client>, [">= 0.5"])
180
- s.add_dependency(%q<mime-types>, [">= 1.15"])
181
- end
182
- end
183
-
@@ -1,144 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'couchrest')
2
-
3
- def show obj
4
- puts obj.inspect
5
- puts
6
- end
7
-
8
- SERVER = CouchRest.new
9
- SERVER.default_database = 'couchrest-extendeddoc-example'
10
-
11
- class Author < CouchRest::ExtendedDocument
12
- use_database SERVER.default_database
13
- property :name
14
-
15
- def drink_scotch
16
- puts "... glug type glug ... I'm #{name} ... type glug glug ..."
17
- end
18
- end
19
-
20
- class Post < CouchRest::ExtendedDocument
21
- use_database SERVER.default_database
22
-
23
- property :title
24
- property :body
25
- property :author, :cast_as => 'Author'
26
-
27
- timestamps!
28
- end
29
-
30
- class Comment < CouchRest::ExtendedDocument
31
- use_database SERVER.default_database
32
-
33
- property :commenter, :cast_as => 'Author'
34
- timestamps!
35
-
36
- def post= post
37
- self["post_id"] = post.id
38
- end
39
- def post
40
- Post.get(self['post_id']) if self['post_id']
41
- end
42
-
43
- end
44
-
45
- puts "Act I: CRUD"
46
- puts
47
- puts "(pause for dramatic effect)"
48
- puts
49
- sleep 2
50
-
51
- puts "Create an author."
52
- quentin = Author.new("name" => "Quentin Hazel")
53
- show quentin
54
-
55
- puts "Create a new post."
56
- post = Post.new(:title => "First Post", :body => "Lorem ipsum dolor sit amet, consectetur adipisicing elit...")
57
- show post
58
-
59
- puts "Add the author to the post."
60
- post.author = quentin
61
- show post
62
-
63
- puts "Save the post."
64
- post.save
65
- show post
66
-
67
- puts "Load the post."
68
- reloaded = Post.get(post.id)
69
- show reloaded
70
-
71
- puts "The author of the post is an instance of Author."
72
- reloaded.author.drink_scotch
73
-
74
- puts "\nAdd some comments to the post."
75
- comment_one = Comment.new :text => "Blah blah blah", :commenter => {:name => "Joe Sixpack"}
76
- comment_two = Comment.new :text => "Yeah yeah yeah", :commenter => {:name => "Jane Doe"}
77
- comment_three = Comment.new :text => "Whatever...", :commenter => {:name => "John Stewart"}
78
-
79
- # TODO - maybe add some magic here?
80
- comment_one.post = post
81
- comment_two.post = post
82
- comment_three.post = post
83
- comment_one.save
84
- comment_two.save
85
- comment_three.save
86
-
87
- show comment_one
88
- show comment_two
89
- show comment_three
90
-
91
- puts "We can load a post through its comment (no magic here)."
92
- show post = comment_one.post
93
-
94
- puts "Commenters are also authors."
95
- comment_two['commenter'].drink_scotch
96
- comment_one['commenter'].drink_scotch
97
- comment_three['commenter'].drink_scotch
98
-
99
- puts "\nLet's save an author to her own document."
100
- jane = comment_two['commenter']
101
- jane.save
102
- show jane
103
-
104
- puts "Oh, that's neat! Because Ruby passes hash valuee by reference, Jane's new id has been added to the comment she left."
105
- show comment_two
106
-
107
- puts "Of course, we'd better remember to save it."
108
- comment_two.save
109
- show comment_two
110
-
111
- puts "Oooh, denormalized... feel the burn!"
112
- puts
113
- puts
114
- puts
115
- puts "Act II: Views"
116
- puts
117
- puts
118
- sleep 2
119
-
120
- puts "Let's find all the comments that go with our post."
121
- puts "Our post has id #{post.id}, so lets find all the comments with that post_id."
122
- puts
123
-
124
- class Comment
125
- view_by :post_id
126
- end
127
-
128
- comments = Comment.by_post_id :key => post.id
129
- show comments
130
-
131
- puts "That was too easy."
132
- puts "We can even wrap it up in a finder on the Post class."
133
- puts
134
-
135
- class Post
136
- def comments
137
- Comment.by_post_id :key => id
138
- end
139
- end
140
-
141
- show post.comments
142
- puts "Gimme 5 minutes and I'll roll this into the framework. ;)"
143
- puts
144
- puts "There is a lot more that can be done with views, but a lot of the interesting stuff is joins, which of course range across types. We'll pick up where we left off, next time."