leanback 0.4.2 → 0.5.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 (63) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +10 -0
  3. data/Gemfile +5 -6
  4. data/Gemfile.lock +65 -14
  5. data/README.md +465 -33
  6. data/Rakefile +8 -17
  7. data/VERSION +1 -1
  8. data/leanback.gemspec +26 -85
  9. data/lib/leanback.rb +129 -587
  10. data/spec/leanback_spec.rb +356 -0
  11. metadata +40 -117
  12. data/Changelog.rdoc +0 -146
  13. data/documentation/static/2011/11/20/i-moved-leanback-documentation/index.html +0 -180
  14. data/documentation/static/2011/11/20/index.html +0 -146
  15. data/documentation/static/2011/11/index.html +0 -146
  16. data/documentation/static/2011/index.html +0 -146
  17. data/documentation/static/2013/06/02/index.html +0 -146
  18. data/documentation/static/2013/06/02/released-leanback-v0-3-4/index.html +0 -180
  19. data/documentation/static/2013/06/09/index.html +0 -146
  20. data/documentation/static/2013/06/09/released-leanback-v0-4-0/index.html +0 -179
  21. data/documentation/static/2013/06/index.html +0 -158
  22. data/documentation/static/2013/index.html +0 -158
  23. data/documentation/static/author/admin/index.html +0 -175
  24. data/documentation/static/basic-couchdb-operations/index.html +0 -259
  25. data/documentation/static/category/uncategorized/index.html +0 -170
  26. data/documentation/static/couchdb-configuration/index.html +0 -189
  27. data/documentation/static/couchdb-security/index.html +0 -218
  28. data/documentation/static/count-by-multiple-documents/index.html +0 -221
  29. data/documentation/static/count-documents-by-key/index.html +0 -177
  30. data/documentation/static/css/2c-l-fixed.css +0 -1
  31. data/documentation/static/css/2c-l-fixed.dev.css +0 -62
  32. data/documentation/static/css/2c-r-fixed.css +0 -1
  33. data/documentation/static/css/2c-r-fixed.dev.css +0 -60
  34. data/documentation/static/css/3c-c-fixed.css +0 -1
  35. data/documentation/static/css/3c-c-fixed.dev.css +0 -84
  36. data/documentation/static/css/3c-l-fixed.css +0 -1
  37. data/documentation/static/css/3c-l-fixed.dev.css +0 -61
  38. data/documentation/static/css/3c-r-fixed.css +0 -1
  39. data/documentation/static/css/3c-r-fixed.dev.css +0 -62
  40. data/documentation/static/css/holy-grail-fluid.css +0 -5
  41. data/documentation/static/css/plugins.css +0 -5
  42. data/documentation/static/css/print.css +0 -5
  43. data/documentation/static/css/screen.css +0 -1
  44. data/documentation/static/design-documents-and-permanent-views/index.html +0 -454
  45. data/documentation/static/error-handling/index.html +0 -157
  46. data/documentation/static/find-document-by-multiple-keys/index.html +0 -269
  47. data/documentation/static/find-documents-by-key/index.html +0 -243
  48. data/documentation/static/index.html +0 -161
  49. data/documentation/static/leanback/index.html +0 -130
  50. data/documentation/static/leanback/installation/index.html +0 -119
  51. data/documentation/static/setting-the-bind_address-port/index.html +0 -151
  52. data/documentation/static/style.css +0 -16
  53. data/spec/admin_party/database_spec.rb +0 -400
  54. data/spec/no_admin_party/cloudant_spec.rb +0 -365
  55. data/spec/no_admin_party/database_spec.rb +0 -491
  56. data/spec/no_admin_party/non_admin_user_spec.rb +0 -67
  57. data/test/helper.rb +0 -18
  58. data/test/main.rb +0 -295
  59. data/test/my_view.json +0 -8
  60. data/test/my_views.json +0 -8
  61. data/test/start.json +0 -8
  62. data/test/test_leanback.rb +0 -319
  63. data/test/view_age.json +0 -8
@@ -1,16 +0,0 @@
1
- /**
2
- * Theme Name: Hybrid
3
- * Theme URI: http://themehybrid.com/themes/hybrid
4
- * Description: A user-friendly, search-engine optimized parent theme, featuring 15 custom page templates and multiple widget-ready areas, allowing you to create any type of site you want.
5
- * Version: 1.0
6
- * Author: Justin Tadlock
7
- * Author URI: http://justintadlock.com
8
- * Tags: theme-options, threaded-comments, sticky-post, microformats, translation-ready, rtl-language-support, one-column, two-columns, three-columns, fixed-width
9
- * License: GNU General Public License v2.0
10
- * License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
- *
12
- * Copyright (c) 2008 - 2011 Justin Tadlock. All rights reserved.
13
- * http://justintadlock.com
14
- */
15
-
16
- html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;background:transparent;border:none;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,i,hr,u,center,menu,layer,s,strike,font,xmp{margin:0;padding:0;vertical-align:baseline;outline:none;font-size:100%;font-weight:normal;font-style:normal;background:transparent;border:none;text-decoration:none}body{line-height:24px;font-family:Georgia,Times,"Times New Roman",serif;color:#333;background:#fff}h1,h2,h3,h4,h5,h6{font-style:normal;font-weight:normal;margin:0 0 21px 0}h1{font-size:1.8em}h2{font-size:1.7em}h3{font-size:1.55em}h4{font-size:1.4em}h5{font-size:1.25em}h6{font-size:1.1em}p{margin:0 0 21px 0}ol,ul{list-style:none}ul{list-style:disc;margin:0 0 21px 2.5em}ol{list-style-type:decimal;margin:0 0 21px 3em}ol ol{list-style:upper-roman}ol ol ol{list-style:lower-roman}ol ol ol ol{list-style:upper-alpha}ol ol ol ol ol{list-style:lower-alpha}ul ul,ol ol,ul ol,ol ul{margin-bottom:0}dl{margin:0 0 18px 3px}dl dt{font-weight:bold;margin:12px 0 0 0}dl dd{margin:6px 0 0 1.5em}strong{font-weight:bold}strong strong{font-weight:normal}em,cite{font-style:italic}em em,cite cite{font-style:normal}abbr{cursor:help}acronym{text-transform:uppercase;border-bottom:1px dashed #666;cursor:help}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:baseline;position:relative;bottom:0.3em}sub{vertical-align:baseline;position:relative;top:0.3em}address{font-style:italic;margin:0 0 21px 0}li address,dd address{margin:0}blockquote{margin:0 2.5em;font-style:normal}blockquote em,blockquote cite{font-style:italic}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}a{cursor:pointer}a img{border:none}pre{overflow:auto;font:.9em Monaco,monospace,Courier,"Courier New";line-height:21px;margin-bottom:21px;padding:9px}code{font:.9em Monaco,monospace,Courier,"Courier New"}pre code{font-size:1em}ins,dfn{font-style:italic;text-decoration:none;border-bottom:1px solid #666}del,s,strike{text-decoration:line-through}object{margin-bottom:21px}input,textarea{font-size:1em;padding:3px}input[type="submit"]{cursor:pointer}:focus{outline:none}form label{cursor:pointer}option{padding:1px 3px}table{border-collapse:collapse;border-spacing:0;margin-bottom:21px}th,td{text-align:left}hr{height:1px;margin-bottom:21px;background:#333}img.wp-smiley{max-height:12px;margin:0;padding:0;border:none}.gallery{display:block;text-align:center;margin-bottom:21px}.alignleft,.left{float:left;margin-right:15px}.alignright,.right{float:right;margin-left:15px}.aligncenter,.center{display:block;margin:0 auto 21px auto}.alignnone,.block{clear:both;margin:0 0 21px 0}.clear{clear:both}img.alignleft,img.alignright{display:inline}blockquote.alignleft,blockquote.alignright{width:33%}#body-container{overflow:hidden;width:960px;margin:0 auto}#container{overflow:hidden;float:left;width:960px}.content{overflow:hidden;float:left;width:620px}.no-widgets .content,.no-default-widgets .content{width:960px}#primary{position:relative;float:right;width:300px}#secondary{position:relative;clear:right;float:right;width:300px}#subsidiary{overflow:hidden}#subsidiary .widget{overflow:hidden;float:left;width:300px;margin:0 20px 0 0}#footer-container{clear:both;overflow:hidden}#footer{clear:both;overflow:hidden}div.menu ul{margin:0;padding:0;list-style:none;line-height:1.0}div.menu ul ul{position:absolute;top:-999em;width:10em}div.menu ul ul li{width:100%}div.menu li:hover{visibility:inherit}div.menu li{float:left;position:relative}div.menu a{display:block;position:relative}div.menu li:hover ul,li.sfHover ul{left:0;top:2em;z-index:99}div.menu li:hover li ul,li.sfHover li ul{top:-999em}div.menu li li:hover ul,li li.sfHover ul{left:10em;top:0}div.menu li li:hover li ul,li li.sfHover li ul{top:-999em}div.menu li li li:hover ul,li li li.sfHover ul{left:10em;top:0}.gallery{display:block;clear:both;overflow:hidden;margin:0 auto}.gallery .gallery-row{display:block;clear:both;overflow:hidden;margin:0}.gallery .gallery-item{overflow:hidden;float:left;margin:0;text-align:center;list-style:none;padding:0}.gallery .gallery-item .gallery-icon img{width:auto;max-width:89%;height:auto;padding:1%;margin:0 auto}.gallery-caption{margin-left:0}.gallery .col-0{width:100%}.gallery .col-1{width:100%}.gallery .col-2{width:50%}.gallery .col-3{width:33.33%}.gallery .col-4{width:25%}.gallery .col-5{width:20%}.gallery .col-6{width:16.66%}.gallery .col-7{width:14.28%}.gallery .col-8{width:12.5%}.gallery .col-9{width:11.11%}.gallery .col-10{width:10%}.gallery .col-11{width:9.09%}.gallery .col-12{width:8.33%}.gallery .col-13{width:7.69%}.gallery .col-14{width:7.14%}.gallery .col-15{width:6.66%}.gallery .col-16{width:6.25%}.gallery .col-17{width:5.88%}.gallery .col-18{width:5.55%}.gallery .col-19{width:5.26%}.gallery .col-20{width:5%}.gallery .col-21{width:4.76%}.gallery .col-22{width:4.54%}.gallery .col-23{width:4.34%}.gallery .col-24{width:4.16%}.gallery .col-25{width:4%}.gallery .col-26{width:3.84%}.gallery .col-27{width:3.7%}.gallery .col-28{width:3.57%}.gallery .col-29{width:3.44%}.gallery .col-30{width:3.33%}.sticky,.bypostauthor{}body{font:normal normal normal 15px/21px Georgia,Times,"Times New Roman",serif;color:#000}#body-container{margin:90px auto 21px auto}a{color:#21759b;text-decoration:none}a:visited{color:#551a8b}a:hover,a:active{color:#d54e21;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:Arial,Verdana,sans-serif;color:#000;font-weight:bold}h1{font-size:24px}h2{font-size:21px}h3{font-size:19px}h4{font-size:17px}h5{font-size:15px}h6{font-size:13px}ul{list-style:square}blockquote{font-style:italic;color:#555}blockquote blockquote{color:#777}blockquote em{font-style:normal}pre{padding:9px;background:#f9f9f9;border:1px solid #ccc}code{padding:0 3px;background:#eee}pre code{background:transparent}table{width:100%;border-collapse:separate;border-top:1px solid #ccc;border-left:1px solid #ccc}caption{font-size:.9em;font-style:italic;text-align:right}td,th{padding:3px 6px;border-bottom:1px solid #ccc;border-right:1px solid #ccc}th{background:#eee}.drop-cap{float:left;margin:3px 3px 0 0;font:normal normal normal 47px/35px "Warnock Pro","Goudy Old Style",Palatino,"Book Antiqua",Georgia,serif;color:#333}.note{padding:6px 9px;background:#eee;border:1px solid #ccc}.warning,.alert{padding:6px 9px;background:#fffbbc;border:1px solid #E6DB55}.error{padding:6px 9px;background:#ffebe8;border:1px solid #C00}.download{padding:6px 9px;background:#e7f7d3;border:1px solid #6c3}.breadcrumb{margin:0 0 30px 0;font-size:.9em;font-style:italic;color:#666}.breadcrumb a{color:#111;text-decoration:none}.breadcrumb a:hover{color:#d54e21;text-decoration:underline}.hentry img{max-width:610px;height:auto;padding:4px;border:1px solid #ccc}.no-widgets .hentry img{max-width:950px}img.alignleft,img.alignright{margin-bottom:10px}.thumbnail{float:left;width:100px;height:100px;margin:5px 15px 10px 0}img.wp-smiley{max-width:12px;padding:0;background:transparent;border:none}.wp-caption{max-width:616px;margin-top:6px;padding:6px 1px 3px 1px;border:1px solid #ccc;text-align:center}.wp-caption .wp-caption-text{margin:0;padding:0 5px;text-align:right;font-size:.9em;font-style:italic;color:#666}.wp-caption img{max-width:604px;margin:0 auto;padding:0;border:1px solid #666}.no-widgets .wp-caption{max-width:956px}.no-widgets .wp-caption img{max-width:946px}.gallery img{border:1px solid #ccc}.avatar{float:left;width:100px;height:100px;margin:5px 15px 0 0;padding:4px;border:1px solid #ccc}#header{margin:0 0 40px 0}#site-title{font:normal normal bold 35px/35px Arial,Verdana,sans-serif;margin:0 0 10px 0}#site-title a{color:#000}#site-description{font:normal normal normal 16px/20px Georgia,Times,"Times New Roman",serif;margin:0;color:#666}#primary-menu,#navigation{overflow:visible;height:34px;margin:0 0 60px 0;z-index:100}#primary-menu li,#page-nav li{margin-right:15px}#primary-menu li li,#page-nav li li{margin-right:0}#primary-menu li a,#page-nav li a{padding:8px 15px 8px 15px;color:#111;background:#fff;border:1px solid #ccc}#primary-menu li:hover ul,#primary-menu li.sfHover ul,#page-nav li:hover ul,#page-nav li.sfHover ul{top:32px}#primary-menu li li a,#page-nav li li a{border-top:none;margin-right:0}#primary-menu li ul,#page-nav li ul{background:#fff;border-top:1px solid #ccc}#primary-menu li li:hover ul,#primary-menu li li.sfHover ul,#primary-menu li li li:hover ul,#primary-menu li li li.sfHover ul,#page-nav li li:hover ul,#page-nav li li.sfHover ul,#page-nav li li li:hover ul,#page-nav li li li.sfHover ul {top:-1px}#primary-menu li li li,#page-nav li li li{margin-left:-1px}#container{margin-bottom:21px}.content{margin:0 0 21px 0}.no-widgets .content,.page-template-no-widgets .content{width:960px}.hentry{overflow:hidden;margin:0 0 40px 0}.singular .hentry{margin:0}.loop-meta{overflow:hidden;margin:0 0 40px 0}.loop-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif}.entry-title{font:normal normal bold 24px/24px Arial,Verdana,sans-serif;margin:0 0 12px 0}.archive .entry-title,.search .entry-title{font-size:21px;margin:0 0 5px 0}.singular-page .entry-title,.singular-attachment .entry-title{margin:0 0 21px 0}.entry-title a{color:#000}.byline{margin:0 0 30px 0;font-style:italic;color:#666}.archive .byline,.search .byline{margin:0 0 5px 0}.entry-content{margin:0 0 10px 0}.entry-meta{clear:both;font-style:italic;color:#666}p.page-links,.comment-pagination{clear:both}.comment-pagination{margin-bottom:21px}p.page-links a,.comment-pagination .page-numbers{margin:0 3px;padding:3px 9px 3px 9px;border:1px solid #ccc}.navigation-links{margin-bottom:21px;font-style:italic}.navigation-links .previous{float:left;max-width:50%}.navigation-links .next{float:right;max-width:50%;text-align:right}.navigation-attachment{overflow:hidden}.widget{overflow:hidden;margin:0 0 15px 0;color:#464646}.widget a{color:#464646;text-decoration:underline}.widget a:hover{color:#d54e21;text-decoration:none}.widget-title{font-size:18px;color:#111}#utility-before-content,#utility-after-content,#utility-after-page,#utility-after-single{margin:0 0 21px 0;padding:20px 20px 0 20px;border:1px solid #ccc}#comments-template{clear:both}.comments-header{font-size:1.2em}.comments-closed{font-style:italic}ol.comment-list,ol.comment-list ol.children{list-style:none;margin:0 0 21px 0}li.comment,li li li.comment,li li li li li.comment,li li li li li li li.comment,li li li li li li li li li.comment,li.pingback,li.trackback{overflow:hidden;margin:0 0 21px 0;padding:21px 21px 0 21px;background:#fff;border:1px solid #ccc}li li.comment,li li li li.comment,li li li li li li.comment,li li li li li li li li.comment,li li li li li li li li li li.comment{background:#f9f9f9}#comments-template .avatar{width:40px;height:40px;float:left;margin-right:15px;padding:0;border:1px solid #666}.comment-meta{margin:10px 0 21px 0;font-size:13px;color:#666}.comment-author{font-size:15px;color:#000}.comment-reply-link,.permalink,.comment-edit-link{font-style:italic;color:#666}.comment-text{clear:left;margin:0 15px}.text-input{display:block;padding:3px 6px;width:97%}#comments-template label{font-size:.9em}textarea{width:98%}#submit{display:inline-block;margin-right:15px;padding:7px 15px 8px 15px;background:#fff;border:1px solid #ccc}#submit:hover{cursor:pointer;background:#f9f9f9}#footer-container{clear:both;margin:0 0 21px 0}#subsidiary{margin:0 0 21px 0}#footer{font-style:italic;color:#444}#footer .copyright{display:inline;float:left;margin-right:9px}.content{float:left;width:620px}#primary{float:right;width:300px}#secondary{clear:right;float:right;width:300px}
@@ -1,400 +0,0 @@
1
- require 'spec_base.rb'
2
- #ain't no party like an admin party
3
-
4
-
5
- describe "CouchDB admin party " do
6
-
7
-
8
- it "should create and delete a database" do
9
- hash = Couchdb.create('staff')
10
- hash.to_s.should == '{"ok"=>true}'
11
- hash = Couchdb.all
12
- hash.include?("staff").should == true
13
- hash = Couchdb.delete 'staff'
14
- hash.include?("staff").should == false
15
- end
16
-
17
- it "should create a database add a finder method to it and then delete the database" do
18
- Couchdb.create('mobsters')
19
- hash = Couchdb.add_finder({:database => 'mobsters', :key => 'email'})
20
- hash.include?("_design/email_finder").should == true
21
- hash.include?("true").should == true
22
- hash.include?("rev").should == true
23
-
24
- doc = {:database => 'mobsters', :doc_id => '_design/email_finder'}
25
- hash = Couchdb.view doc
26
- hash["_id"].should == '_design/email_finder'
27
- Couchdb.delete 'mobsters'
28
- end
29
-
30
-
31
-
32
-
33
- it "should create and view document doc" do
34
- Couchdb.create('friends')
35
-
36
- data = {:firstname => 'John',
37
- :lastname =>'smith',
38
- :phone => '202-234-1234',
39
- :email =>'james@mail.com',
40
- :age =>'34',
41
- :gender =>'male'}
42
- doc = {:database => 'friends', :doc_id => 'john', :data => data}
43
- Couchdb.create_doc doc
44
-
45
- doc = {:database => 'friends', :doc_id => 'john'}
46
- hash = Couchdb.view doc
47
- hash["_id"].should == 'john'
48
-
49
- #view doc and return symbolized keys
50
- doc = {:database => 'friends', :doc_id => 'john'}
51
- hash = Couchdb.view(doc,'', {symbolize_keys: true})
52
- hash.should include(data)
53
- end
54
-
55
- it "should count the lastnames named smith" do
56
- count = Couchdb.count({:database => 'friends', :lastname => 'smith'})
57
- count.should == 1
58
- end
59
-
60
- it "should count lastnames named brown" do
61
- count = Couchdb.count({:database => 'friends', :lastname => 'brown'})
62
- count.should == 0
63
- end
64
-
65
- it "find items by key" do
66
- docs = Couchdb.find_by({:database => 'friends', :lastname => 'smith'})
67
- d = docs[0]
68
- d["lastname"].should == "smith"
69
- Couchdb.delete_doc({:database => 'friends', :doc_id => '_design/lastname_finder'})
70
- end
71
-
72
- it "should find items by multiple keys" do
73
- keys = {:gender => 'male',:age => '34'}
74
- docs = Couchdb.find_by_keys({:database => 'friends', :keys => keys})
75
- d = docs[0]
76
- d["age"].should == "34"
77
- end
78
-
79
- it "should find items by multiple keys using a single key" do
80
- keys = {:lastname => 'smith'}
81
- docs = Couchdb.find_by_keys({:database => 'friends', :keys => keys})
82
- d = docs[0]
83
- d["lastname"].should == "smith"
84
- end
85
-
86
- it "should find items by multiple keys" do
87
- keys = {:gender => 'male',:age => '40'}
88
- docs = Couchdb.find_by_keys({:database => 'friends', :keys => keys})
89
- docs.should == []
90
- end
91
-
92
- it "should count items by multiple keys" do
93
- keys = {:gender => 'male',:age => '34'}
94
- count = Couchdb.count_by_keys({:database => 'friends', :keys => keys})
95
- count.should == 1
96
- end
97
-
98
- it "should count items by multiple keys" do
99
- keys = {:gender => 'male',:age => '40'}
100
- count = Couchdb.count_by_keys({:database => 'friends', :keys => keys})
101
- count.should == 0
102
- end
103
-
104
-
105
- it "should query a permanent view that doesn't exist and handle exception" do
106
- begin
107
- view = { :database => "friends", :design_doc => 'more_views', :view => 'get_user_email'}
108
- Couchdb.find view
109
- rescue CouchdbException => e
110
- e.to_s.should == "CouchDB: Error - not_found. Reason - missing"
111
- e.error.should == "not_found"
112
- end
113
- end
114
-
115
- it "should query a permanent view and create the view on the fly, if it doesn't already exist" do
116
- view = {:database => 'friends',
117
- :design_doc => 'my_views',
118
- :view => 'get_emails',
119
- :json_doc => '/home/obi/bin/leanback/test/my_view.json'}
120
-
121
- docs = Couchdb.find_on_fly(view)
122
- docs[0].include?("Email").should == true
123
- docs[0].include?("Name").should == true
124
- #verify that the view was created
125
- doc = {:database => 'friends', :doc_id => '_design/my_views'}
126
- hash = Couchdb.view doc
127
- hash["_id"].should == '_design/my_views'
128
- Couchdb.delete_doc({:database => 'friends', :doc_id => '_design/my_views'})
129
- end
130
-
131
- it "should query a permanent view by key and create the view on the fly, if it doesn't already exist" do
132
- view = { :database => 'friends',
133
- :design_doc => 'the_view',
134
- :view => 'age',
135
- :json_doc => '/home/obi/bin/leanback/test/view_age.json'}
136
-
137
- age = '34'
138
- docs = Couchdb.find_on_fly(view,"",key = age)
139
- docs[0].include?("age").should == true
140
- d = docs[0]
141
- d["age"].should == '34'
142
- #verify that the view was created
143
- doc = {:database => 'friends', :doc_id => '_design/the_view'}
144
- hash = Couchdb.view doc
145
- hash["_id"].should == '_design/the_view'
146
- Couchdb.delete_doc({:database => 'friends', :doc_id => '_design/the_view'})
147
- end
148
-
149
- it "should create a design doc/permanent view and query it" do
150
- doc = { :database => 'friends', :design_doc => 'more_views', :json_doc => '/home/obi/bin/leanback/test/my_views.json' }
151
- hash = Couchdb.create_design doc
152
- hash["id"].should == '_design/more_views'
153
- hash["ok"].should == true
154
-
155
- view = { :database => "friends", :design_doc => 'more_views', :view => 'get_email'}
156
- hash = Couchdb.find view
157
- hash[0].has_key?("Firstname").should == true
158
- hash[0].has_key?("Lastname").should == true
159
- hash[0].has_key?("Email").should == true
160
-
161
- doc = {:database => 'friends', :doc_id => '_design/more_views'}
162
- hash = Couchdb.view doc
163
- hash["_id"].should == '_design/more_views'
164
- Couchdb.delete_doc({:database => 'friends', :doc_id => '_design/more_views'})
165
- end
166
-
167
- it "should return a list of all databases in the system" do
168
- databases = Couchdb.all
169
- databases.include?("friends").should == true
170
- end
171
-
172
- it "should create a document" do
173
- data = {:firstname => 'Nancy', :lastname =>'Lee', :phone => '347-808-3734',:email =>'nancy@mail.com',:gender => 'female'}
174
- doc = {:database => 'friends', :doc_id => 'Nancy', :data => data}
175
- hash = Couchdb.create_doc doc
176
- hash["id"].should == 'Nancy'
177
- hash["ok"].should == true
178
-
179
- doc = {:database => 'friends', :doc_id => 'Nancy'}
180
- hash = Couchdb.view doc
181
- hash["_id"].should == 'Nancy'
182
- hash["firstname"].should == 'Nancy'
183
- hash["lastname"].should == 'Lee'
184
- hash["phone"].should == '347-808-3734'
185
- Couchdb.delete_doc({:database => 'friends', :doc_id => 'Nancy'})
186
- end
187
-
188
- it "should update the document" do
189
- data = {:age => "41", :lastname => "Stevens" }
190
- doc = { :database => 'friends', :doc_id => 'john', :data => data}
191
- hash = Couchdb.update_doc doc
192
- hash["id"].should == 'john'
193
- hash["ok"].should == true
194
-
195
- doc = {:database => 'friends', :doc_id => 'john'}
196
- hash = Couchdb.view doc
197
- hash["_id"].should == 'john'
198
- hash["age"].should == '41'
199
- hash["lastname"].should == 'Stevens'
200
- Couchdb.delete_doc({:database => 'friends', :doc_id => 'john'})
201
- end
202
-
203
-
204
- it "should delete a document after creating it" do
205
- data = {:firstname => 'Sun',
206
- :lastname =>'Nova',
207
- :phone => '212-234-1234',
208
- :email =>'james@mail.com'}
209
-
210
- doc = {:database => 'friends', :doc_id => 'Sun', :data => data}
211
- Couchdb.create_doc doc
212
-
213
- doc = {:database => 'friends', :doc_id => 'Sun'}
214
- hash = Couchdb.delete_doc doc
215
- hash["id"].should == 'Sun'
216
- hash["ok"].should == true
217
- begin
218
- doc = {:database => 'friends', :doc_id => 'Sun'}
219
- Couchdb.view doc
220
- rescue CouchdbException => e
221
- e.to_s.should == "CouchDB: Error - not_found. Reason - deleted"
222
- e.error.should == "not_found"
223
- end
224
- end
225
-
226
-
227
- it "should test finder options" do
228
-
229
- Couchdb.create('fishes')
230
-
231
- data = {:firstname => 'aaron', :gender =>'male', :age => '28', :salary => '50000'}
232
- doc = {:database => 'fishes', :doc_id => 'aaron', :data => data}
233
- Couchdb.create_doc doc
234
-
235
- data_c = {:firstname => 'john', :gender =>'male', :age => '28', :salary => '60000'}
236
- doc = {:database => 'fishes', :doc_id => 'john', :data => data_c}
237
- Couchdb.create_doc doc
238
-
239
- data = {:firstname => 'peter', :gender =>'male', :age => '45', :salary => '78000'}
240
- doc = {:database => 'fishes', :doc_id => 'peter', :data => data}
241
- Couchdb.create_doc doc
242
-
243
- data = {:firstname => 'sam', :gender =>'male', :age => '28', :salary => '97000'}
244
- doc = {:database => 'fishes', :doc_id => 'sam', :data => data}
245
- Couchdb.create_doc doc
246
-
247
-
248
- keys = {:age =>'28', :gender => 'male'}
249
- hash = Couchdb.find_by_keys({:database => 'fishes', :keys => keys},'', options = {:limit => 2, :skip => 1})
250
- h = hash[0]
251
- h["firstname"].should == "john"
252
- hash.length.should == 2
253
-
254
- #return hash in symbolized keys for find_by_keys
255
- hash = Couchdb.find_by_keys({:database => 'fishes', :keys => keys},'', options = {:limit => 2, :skip => 1, :symbolize_keys => true})
256
- hash.first.should include(data_c)
257
-
258
- #create the design doc to be queryed in the test
259
- Couchdb.find_by({:database => 'fishes', :gender => 'male'})
260
-
261
-
262
- view = { :database => "fishes",
263
- :design_doc => 'gender_finder',
264
- :view => 'find_by_gender'}
265
-
266
- hash = Couchdb.find view,"",key=nil, options = {:limit => 2, :skip => 1}
267
- h = hash[0]
268
- h["firstname"].should == "john"
269
- hash.length.should == 2
270
-
271
- #return results in symbolized keys
272
- hash = Couchdb.find view,'',key=nil, options = {:limit => 2, :skip => 1, :symbolize_keys => true}
273
- hash.first.should include(data_c)
274
-
275
- #it should not return symbolized keys
276
- hash = Couchdb.find view,'',key=nil, options = {:limit => 2, :skip => 1, :symbolize_keys => false}
277
- hash.first.should_not include(data_c)
278
- hash.first["firstname"].should == "john"
279
-
280
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},"",options = {:limit => 2, :skip => 1})
281
- h = hash[0]
282
- h["firstname"].should == "john"
283
- hash.length.should == 2
284
-
285
- #return symbolized results
286
- hash = Couchdb.find_by({:database => 'fishes', :gender => 'male'},'',options = {:limit => 2, :skip => 1, :symbolize_keys => true})
287
- hash.first.should include(data_c)
288
-
289
- hash = Couchdb.find view,"",key='male', options = {:descending => true}
290
- h = hash[0]
291
- h["firstname"].should == "sam"
292
-
293
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},"", options = {:descending => true})
294
- h = hash[0]
295
- h["firstname"].should == "sam"
296
-
297
-
298
-
299
- hash = Couchdb.find view,"",key='male', options = {:limit => 3}
300
- hash.length.should == 3
301
-
302
- hash = Couchdb.find view,"",key=nil, options = {:skip => 2}
303
- h = hash[0]
304
- h["firstname"].should == "peter"
305
- hash.length.should == 2
306
-
307
- hash = Couchdb.find view,"",key='male', options = {:descending => true,:limit => 1}
308
- h = hash[0]
309
- h["firstname"].should == "sam"
310
- hash.length.should == 1
311
-
312
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},"", options = {:descending => true,:limit => 1})
313
- h = hash[0]
314
- h["firstname"].should == "sam"
315
- hash.length.should == 1
316
-
317
- Couchdb.find_by({:database => 'fishes', :salary => '5000'})
318
-
319
-
320
- view = { :database => "fishes",
321
- :design_doc => 'salary_finder',
322
- :view => 'find_by_salary'}
323
-
324
- hash = Couchdb.find view, "",key=nil, options = {:startkey => "3000", :endkey => "65000"}
325
- h = hash[0]
326
- h["firstname"].should == "aaron"
327
- hash.length.should == 2
328
-
329
- hash = Couchdb.find view, "",key=nil, options = {:startkey => "53000", :endkey => "99000",:limit => 2}
330
- h = hash[0]
331
- h["firstname"].should == "john"
332
- hash.length.should == 2
333
-
334
- Couchdb.find_by({:database => 'fishes', :salary => '5000'},"", options = {:startkey => "53000", :endkey => "99000",:limit => 2})
335
- h = hash[0]
336
- h["firstname"].should == "john"
337
- hash.length.should == 2
338
-
339
- view = {:database => 'fishes',
340
- :design_doc => 'my_views',
341
- :view => 'age_gender',
342
- :json_doc => '/home/obi/bin/leanback/test/start.json'}
343
-
344
- options = {:startkey => ["28","male"], :endkey => ["28","male"], :limit => 2}
345
-
346
- hash = Couchdb.find_on_fly(view,"",key=nil, options)
347
- h0 = hash[0]
348
- h1 = hash[1]
349
- h0["firstname"].should == "aaron"
350
- h1["firstname"].should == "john"
351
- hash.length.should == 2
352
-
353
- options = {:startkey => ["28","male"], :endkey => ["28","male"], :skip => 1}
354
-
355
- hash = Couchdb.find_on_fly(view,"",key=nil, options)
356
- h0 = hash[0]
357
- h1 = hash[1]
358
- h0["firstname"].should == "john"
359
- h1["firstname"].should == "sam"
360
- hash.length.should == 2
361
-
362
-
363
- #return results as symbolized keys
364
- options = {:startkey => ["28","male"], :endkey => ["28","male"], :skip => 1,:symbolize_keys => true}
365
- hash = Couchdb.find_on_fly(view,'',key=nil, options)
366
- hash.first.should include(data_c)
367
-
368
-
369
- options = {:startkey => ["28","male"], :endkey => ["28","male"]}
370
-
371
- hash = Couchdb.find_on_fly(view,"",key=nil, options)
372
- h0 = hash[0]
373
- h1 = hash[1]
374
- h0["firstname"].should == "aaron"
375
- h1["firstname"].should == "john"
376
- hash.length.should == 3
377
-
378
- Couchdb.delete 'fishes'
379
- end
380
-
381
- #database: administration tasks
382
-
383
- it "should set a config section, retrieve it and delete it" do
384
- data = {:section => "sample_config_section",
385
- :key => "sample_key",
386
- :value => "sample_value"}
387
- Couchdb.set_config data
388
-
389
- data = {:section => "sample_config_section",
390
- :key => "sample_key"}
391
-
392
- Couchdb.get_config(data).should == "sample_value"
393
-
394
- Couchdb.delete_config(data).should == "sample_value"
395
- Couchdb.delete 'friends'
396
-
397
- lambda {Couchdb.get_config(data)}.should raise_error(CouchdbException,"CouchDB: Error - not_found. Reason - unknown_config_value")
398
- end
399
-
400
- end
@@ -1,365 +0,0 @@
1
- require 'spec_base.rb'
2
-
3
- #a day in the life of a CouchDB admin user
4
- Couchdb.address = "http://whisperservers.cloudant.com"
5
- Couchdb.port = "80"
6
- hash = Couchdb.login(username = ENV['CLOUDANT_USERNAME'],password =ENV['CLOUDANT_PASSWORD'])
7
- @@auth_session = hash["AuthSession"]
8
-
9
-
10
- describe "CouchDB " do
11
-
12
- it "should create and delete a database" do
13
- hash = Couchdb.create('employees',@@auth_session)
14
- #hash.to_s.should == '{"ok"=>true}'
15
- #hash = Couchdb.all
16
- #hash.include?("employees").should == true
17
- hash = Couchdb.delete 'employees',@@auth_session
18
- #hash.include?("employees").should == false
19
- end
20
-
21
- it "should create a database add a finder method to it and then delete the database" do
22
- Couchdb.create('wiseguys',@@auth_session)
23
- hash = Couchdb.add_finder({:database => 'wiseguys', :key => 'email'},@@auth_session)
24
- hash.include?("_design/email_finder").should == true
25
- hash.include?("true").should == true
26
- hash.include?("rev").should == true
27
-
28
- doc = {:database => 'wiseguys', :doc_id => '_design/email_finder'}
29
- hash = Couchdb.view doc,@@auth_session
30
- hash["_id"].should == '_design/email_finder'
31
- Couchdb.delete 'wiseguys',@@auth_session
32
- end
33
-
34
- it "should create and view document doc" do
35
- Couchdb.create('contacts',@@auth_session)
36
- data = {:firstname => 'John',
37
- :lastname =>'smith',
38
- :phone => '202-234-1234',
39
- :email =>'james@mail.com',
40
- :age =>'34',
41
- :gender =>'male'}
42
- doc = {:database => 'contacts', :doc_id => 'john', :data => data}
43
- Couchdb.create_doc doc,@@auth_session
44
-
45
- doc = {:database => 'contacts', :doc_id => 'john'}
46
- hash = Couchdb.view doc,@@auth_session
47
- hash["_id"].should == 'john'
48
- end
49
-
50
- it "should count the lastnames named smith" do
51
- count = Couchdb.count({:database => 'contacts', :lastname => 'smith'},@@auth_session)
52
- count.should == 1
53
- end
54
-
55
- it "should count lastnames named brown" do
56
- count = Couchdb.count({:database => 'contacts', :lastname => 'brown'},@@auth_session)
57
- count.should == 0
58
- end
59
-
60
-
61
- it "find items by key" do
62
- docs = Couchdb.find_by({:database => 'contacts', :lastname => 'smith'},@@auth_session)
63
- d = docs[0]
64
- d["lastname"].should == "smith"
65
- Couchdb.delete_doc({:database => 'contacts', :doc_id => '_design/lastname_finder'},@@auth_session)
66
- end
67
-
68
- it "should find items by multiple keys" do
69
- keys = {:gender => 'male',:age => '34'}
70
- docs = Couchdb.find_by_keys({:database => 'contacts', :keys => keys},@@auth_session)
71
- d = docs[0]
72
- d["age"].should == "34"
73
- end
74
-
75
- it "should find items by multiple keys using a single key" do
76
- keys = {:lastname => 'smith'}
77
- docs = Couchdb.find_by_keys({:database => 'contacts', :keys => keys},@@auth_session)
78
- d = docs[0]
79
- d["lastname"].should == "smith"
80
- end
81
-
82
- it "should find items by multiple keys" do
83
- keys = {:gender => 'male',:age => '40'}
84
- docs = Couchdb.find_by_keys({:database => 'contacts', :keys => keys},@@auth_session)
85
- docs.should == []
86
- end
87
-
88
- it "should count items by multiple keys" do
89
- keys = {:gender => 'male',:age => '34'}
90
- count = Couchdb.count_by_keys({:database => 'contacts', :keys => keys},@@auth_session)
91
- count.should == 1
92
- end
93
-
94
- it "should count items by multiple keys" do
95
- keys = {:gender => 'male',:age => '40'}
96
- count = Couchdb.count_by_keys({:database => 'contacts', :keys => keys},@@auth_session)
97
- count.should == 0
98
- end
99
-
100
-
101
-
102
- it "should query a permanent view that doesn't exist and handle exception" do
103
- begin
104
- view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_user_email'}
105
- Couchdb.find view,@@auth_session
106
- rescue CouchdbException => e
107
- e.to_s.should == "CouchDB: Error - not_found. Reason - missing"
108
- e.error.should == "not_found"
109
- end
110
- end
111
-
112
- it "should query a permanent view and create the view on the fly, if it doesn't already exist" do
113
- view = {:database => 'contacts',
114
- :design_doc => 'my_views',
115
- :view => 'get_emails',
116
- :json_doc => '/home/obi/bin/leanback/test/my_view.json'}
117
-
118
- docs = Couchdb.find_on_fly(view,@@auth_session)
119
- docs[0].include?("Email").should == true
120
- docs[0].include?("Name").should == true
121
- #verify that the view was created
122
- doc = {:database => 'contacts', :doc_id => '_design/my_views'}
123
- hash = Couchdb.view doc,@@auth_session
124
- hash["_id"].should == '_design/my_views'
125
- Couchdb.delete_doc({:database => 'contacts', :doc_id => '_design/my_views'},@@auth_session)
126
- end
127
-
128
- it "should query a permanent view by key and create the view on the fly, if it doesn't already exist" do
129
- view = { :database => 'contacts',
130
- :design_doc => 'the_view',
131
- :view => 'age',
132
- :json_doc => '/home/obi/bin/leanback/test/view_age.json'}
133
-
134
- age = '34'
135
- docs = Couchdb.find_on_fly(view,@@auth_session,key = age)
136
- docs[0].include?("age").should == true
137
- d = docs[0]
138
- d["age"].should == '34'
139
- #verify that the view was created
140
- doc = {:database => 'contacts', :doc_id => '_design/the_view'}
141
- hash = Couchdb.view doc,@@auth_session
142
- hash["_id"].should == '_design/the_view'
143
- Couchdb.delete_doc({:database => 'contacts', :doc_id => '_design/the_view'},@@auth_session)
144
- end
145
-
146
- it "should create a design doc/permanent view and query it" do
147
- doc = { :database => 'contacts', :design_doc => 'more_views', :json_doc => '/home/obi/bin/leanback/test/my_views.json' }
148
- hash = Couchdb.create_design doc,@@auth_session
149
- hash["id"].should == '_design/more_views'
150
- hash["ok"].should == true
151
-
152
- view = { :database => "contacts", :design_doc => 'more_views', :view => 'get_email'}
153
- hash = Couchdb.find view,@@auth_session
154
- hash[0].has_key?("Firstname").should == true
155
- hash[0].has_key?("Lastname").should == true
156
- hash[0].has_key?("Email").should == true
157
-
158
- doc = {:database => 'contacts', :doc_id => '_design/more_views'}
159
- hash = Couchdb.view doc,@@auth_session
160
- hash["_id"].should == '_design/more_views'
161
- Couchdb.delete_doc({:database => 'contacts', :doc_id => '_design/more_views'},@@auth_session)
162
- end
163
-
164
-
165
-
166
- it "should create a document" do
167
- data = {:firstname => 'Nancy', :lastname =>'Lee', :phone => '347-808-3734',:email =>'nancy@mail.com',:gender => 'female'}
168
- doc = {:database => 'contacts', :doc_id => 'Nancy', :data => data}
169
- hash = Couchdb.create_doc doc,@@auth_session
170
- hash["id"].should == 'Nancy'
171
- hash["ok"].should == true
172
-
173
- doc = {:database => 'contacts', :doc_id => 'Nancy'}
174
- hash = Couchdb.view doc,@@auth_session
175
- hash["_id"].should == 'Nancy'
176
- hash["firstname"].should == 'Nancy'
177
- hash["lastname"].should == 'Lee'
178
- hash["phone"].should == '347-808-3734'
179
- Couchdb.delete_doc({:database => 'contacts', :doc_id => 'Nancy'},@@auth_session)
180
- end
181
-
182
- it "should update the document" do
183
- data = {:age => "41", :lastname => "Stevens" }
184
- doc = { :database => 'contacts', :doc_id => 'john', :data => data}
185
- hash = Couchdb.update_doc doc,@@auth_session
186
- hash["id"].should == 'john'
187
- hash["ok"].should == true
188
-
189
- doc = {:database => 'contacts', :doc_id => 'john'}
190
- hash = Couchdb.view doc,@@auth_session
191
- hash["_id"].should == 'john'
192
- hash["age"].should == '41'
193
- hash["lastname"].should == 'Stevens'
194
- Couchdb.delete_doc({:database => 'contacts', :doc_id => 'john'},@@auth_session)
195
- end
196
-
197
-
198
- it "should delete a document after creating it" do
199
- data = {:firstname => 'Sun',
200
- :lastname =>'Nova',
201
- :phone => '212-234-1234',
202
- :email =>'james@mail.com'}
203
-
204
- doc = {:database => 'contacts', :doc_id => 'Sun', :data => data}
205
- Couchdb.create_doc doc,@@auth_session
206
-
207
- doc = {:database => 'contacts', :doc_id => 'Sun'}
208
- hash = Couchdb.delete_doc doc,@@auth_session
209
- hash["id"].should == 'Sun'
210
- hash["ok"].should == true
211
- begin
212
- doc = {:database => 'contacts', :doc_id => 'Sun'}
213
- Couchdb.view doc,@@auth_session
214
- rescue CouchdbException => e
215
- e.to_s.should == "CouchDB: Error - not_found. Reason - deleted"
216
- e.error.should == "not_found"
217
- end
218
- end
219
-
220
- it "should test finder options" do
221
-
222
- Couchdb.create('fishes',@@auth_session)
223
-
224
- data = {:firstname => 'aaron', :gender =>'male', :age => '28', :salary => '50000'}
225
- doc = {:database => 'fishes', :doc_id => 'aaron', :data => data}
226
- Couchdb.create_doc doc,@@auth_session
227
-
228
- data = {:firstname => 'john', :gender =>'male', :age => '28', :salary => '60000'}
229
- doc = {:database => 'fishes', :doc_id => 'john', :data => data}
230
- Couchdb.create_doc doc,@@auth_session
231
-
232
- data = {:firstname => 'peter', :gender =>'male', :age => '45', :salary => '78000'}
233
- doc = {:database => 'fishes', :doc_id => 'peter', :data => data}
234
- Couchdb.create_doc doc,@@auth_session
235
-
236
- data = {:firstname => 'sam', :gender =>'male', :age => '28', :salary => '97000'}
237
- doc = {:database => 'fishes', :doc_id => 'sam', :data => data}
238
- Couchdb.create_doc doc,@@auth_session
239
-
240
-
241
- keys = {:age =>'28', :gender => 'male'}
242
- hash = Couchdb.find_by_keys({:database => 'fishes', :keys => keys},@@auth_session, options = {:limit => 2, :skip => 1})
243
- h = hash[0]
244
- h["firstname"].should == "john"
245
- hash.length.should == 2
246
-
247
- #create the design doc to be queryed in the test
248
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},@@auth_session)
249
-
250
-
251
- view = { :database => "fishes",
252
- :design_doc => 'gender_finder',
253
- :view => 'find_by_gender'}
254
-
255
- hash = Couchdb.find view,@@auth_session,key=nil, options = {:limit => 2, :skip => 1}
256
- h = hash[0]
257
- h["firstname"].should == "john"
258
- hash.length.should == 2
259
-
260
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},@@auth_session,options = {:limit => 2, :skip => 1})
261
- h = hash[0]
262
- h["firstname"].should == "john"
263
- hash.length.should == 2
264
-
265
-
266
-
267
- hash = Couchdb.find view,@@auth_session,key='male', options = {:descending => true}
268
- h = hash[0]
269
- h["firstname"].should == "sam"
270
-
271
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},@@auth_session, options = {:descending => true})
272
- h = hash[0]
273
- h["firstname"].should == "sam"
274
-
275
-
276
-
277
- hash = Couchdb.find view,@@auth_session,key='male', options = {:limit => 3}
278
- hash.length.should == 3
279
-
280
- hash = Couchdb.find view,@@auth_session,key=nil, options = {:skip => 2}
281
- h = hash[0]
282
- h["firstname"].should == "peter"
283
- hash.length.should == 2
284
-
285
- hash = Couchdb.find view,@@auth_session,key='male', options = {:descending => true,:limit => 1}
286
- h = hash[0]
287
- h["firstname"].should == "sam"
288
- hash.length.should == 1
289
-
290
- Couchdb.find_by({:database => 'fishes', :gender => 'male'},@@auth_session, options = {:descending => true,:limit => 1})
291
- h = hash[0]
292
- h["firstname"].should == "sam"
293
- hash.length.should == 1
294
-
295
- Couchdb.find_by({:database => 'fishes', :salary => '5000'},@@auth_session)
296
-
297
-
298
- view = { :database => "fishes",
299
- :design_doc => 'salary_finder',
300
- :view => 'find_by_salary'}
301
-
302
- hash = Couchdb.find view, @@auth_session,key=nil, options = {:startkey => "3000", :endkey => "65000"}
303
- h = hash[0]
304
- h["firstname"].should == "aaron"
305
- hash.length.should == 2
306
-
307
- hash = Couchdb.find view, @@auth_session,key=nil, options = {:startkey => "53000", :endkey => "99000",:limit => 2}
308
- h = hash[0]
309
- h["firstname"].should == "john"
310
- hash.length.should == 2
311
-
312
- Couchdb.find_by({:database => 'fishes', :salary => ''},@@auth_session, options = {:startkey => "53000", :endkey => "99000",:limit => 2})
313
- h = hash[0]
314
- h["firstname"].should == "john"
315
- hash.length.should == 2
316
-
317
- view = {:database => 'fishes',
318
- :design_doc => 'my_views',
319
- :view => 'age_gender',
320
- :json_doc => '/home/obi/bin/leanback/test/start.json'}
321
-
322
- options = {:startkey => ["28","male"], :endkey => ["28","male"], :limit => 2}
323
-
324
- hash = Couchdb.find_on_fly(view,@@auth_session,key=nil, options)
325
- h0 = hash[0]
326
- h1 = hash[1]
327
- h0["firstname"].should == "aaron"
328
- h1["firstname"].should == "john"
329
- hash.length.should == 2
330
-
331
- options = {:startkey => ["28","male"], :endkey => ["28","male"], :skip => 1}
332
-
333
- hash = Couchdb.find_on_fly(view,@@auth_session,key=nil, options)
334
- h0 = hash[0]
335
- h1 = hash[1]
336
- h0["firstname"].should == "john"
337
- h1["firstname"].should == "sam"
338
- hash.length.should == 2
339
-
340
-
341
- options = {:startkey => ["28","male"], :endkey => ["28","male"]}
342
-
343
- hash = Couchdb.find_on_fly(view,@@auth_session,key=nil, options)
344
- h0 = hash[0]
345
- h1 = hash[1]
346
- h0["firstname"].should == "aaron"
347
- h1["firstname"].should == "john"
348
- hash.length.should == 3
349
-
350
- Couchdb.delete 'fishes',@@auth_session
351
- end
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
- it "should delete the database" do
361
- Couchdb.delete 'contacts',@@auth_session
362
- end
363
-
364
-
365
- end