couchup 0.0.9 → 0.0.10
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.
- data/Readme.markdown +113 -2
- data/lib/couchup/commands/help.rb +2 -1
- data/lib/couchup/mapreduce.rb +2 -1
- data/lib/couchup/version.rb +1 -1
- metadata +1 -1
data/Readme.markdown
CHANGED
@@ -3,6 +3,117 @@ Couchup
|
|
3
3
|
|
4
4
|
This is a command line interface to CouchDb.
|
5
5
|
|
6
|
-
I plan to gemify it, but currently you should just bundle install and run bin/couchup
|
7
6
|
|
8
|
-
|
7
|
+
Installaton
|
8
|
+
===========
|
9
|
+
|
10
|
+
gem install couchup
|
11
|
+
|
12
|
+
Tested on Ruby 1.9, 1.8.7, REE and Rubunius. (Does not work on jruby for reasons i have not debugged)
|
13
|
+
|
14
|
+
Usage
|
15
|
+
======
|
16
|
+
|
17
|
+
Couchup is a command line utility piggybacking on the irb. So you can do all the ruby stuff in it.
|
18
|
+
Type help on command line to list the stuff you can do with couchup.
|
19
|
+
|
20
|
+
|
21
|
+
$ couchup
|
22
|
+
> help
|
23
|
+
|
24
|
+
|
25
|
+
You see a bunch of commands that you can use.
|
26
|
+
Remember this is just an IRB, so the command syntax is a little verbose.
|
27
|
+
|
28
|
+
create :database, :riders (Note the commas and symbols)
|
29
|
+
|
30
|
+
Also symbols and strings can be used interchangebly, So the above is the same as
|
31
|
+
|
32
|
+
create "database", "riders"
|
33
|
+
|
34
|
+
Some Common Things to do with couchup
|
35
|
+
=====================================
|
36
|
+
|
37
|
+
Basics
|
38
|
+
--------
|
39
|
+
|
40
|
+
Connects to the couch server at foo.bar.com on the default port of 5984
|
41
|
+
|
42
|
+
> connect "foo.bar.com"
|
43
|
+
|
44
|
+
Connects to local couch on localhost at 5984
|
45
|
+
|
46
|
+
> connect
|
47
|
+
|
48
|
+
To use a specific database switch with.
|
49
|
+
|
50
|
+
> use :riders
|
51
|
+
|
52
|
+
Most Couchup commands need you to be on a specific database.
|
53
|
+
|
54
|
+
|
55
|
+
# Getting documents
|
56
|
+
--------------------
|
57
|
+
|
58
|
+
Get all documents from the current database.
|
59
|
+
|
60
|
+
> get
|
61
|
+
|
62
|
+
gets docucment by the given ID.
|
63
|
+
|
64
|
+
> get "id"
|
65
|
+
|
66
|
+
|
67
|
+
and because it is all in ruby you can do stuff like
|
68
|
+
|
69
|
+
get("123")[:history].first[:name]
|
70
|
+
|
71
|
+
|
72
|
+
#Running views
|
73
|
+
--------------
|
74
|
+
|
75
|
+
There are 2 different commands.
|
76
|
+
map Will just run the map function
|
77
|
+
view : will run both the map and reduce.
|
78
|
+
They have very similar semantics, except for where noted.
|
79
|
+
|
80
|
+
> map "Rider/all"
|
81
|
+
|
82
|
+
Found 1 item(s)
|
83
|
+
|
84
|
+
{"id"=>"78ea2a07be87b6fa0e4afed5d81f3729", "key"=>"78ea2a07be87b6fa0e4afed5d81f3729", "value"=>1, "doc"=>{"_id"=>"78ea2a07be87b6fa0e4afed5d81f3729", "_rev"=>"2-fb5e1207a12f996e287fa23986ac7077", "number"=>"101", "start_time"=>"2011-02-17T18:18:58+05:30", "end_time"=>"2011-02-17T18:20:24+05:30", "type"=>"rider", "couchrest-type"=>"Rider"}}
|
85
|
+
|
86
|
+
> map "Rider/all", "78ea2a07be87b6fa0e4afed5d81f3729"
|
87
|
+
|
88
|
+
will return only only the document matching the above key.
|
89
|
+
|
90
|
+
|
91
|
+
The following will query the view with a post to get all the matching keys.
|
92
|
+
|
93
|
+
map "Rider/all", ["78ea2a07be87b6fa0e4afed5d81f3729", "ee23399aad3f8685e64f455504000d49"]
|
94
|
+
|
95
|
+
The following will query the view with a startkey and endkey semantics.
|
96
|
+
|
97
|
+
map "Rider/all", :startkey=> "78ea2a07be87b6fa0e4afed5d81f3729", :endkey=> "ee23399aad3f8685e64f455504000d49"
|
98
|
+
|
99
|
+
|
100
|
+
The same rules apply for *view* command as well, and additionally it takes the group_level parameter as well.
|
101
|
+
|
102
|
+
view "Rider/all", :startkey=> "78ea2a07be87b6fa0e4afed5d81f3729", :endkey=> "ee23399aad3f8685e64f455504000d49"
|
103
|
+
|
104
|
+
|
105
|
+
# Creating and modifying views.
|
106
|
+
-------------------------------
|
107
|
+
|
108
|
+
It is important to set the EDITOR variable before running couchup, because we use the EDITOR to pop up an edit window
|
109
|
+
|
110
|
+
> create :view, "Rider/test"
|
111
|
+
|
112
|
+
Will pop a textmate/emacs/vi window with some templates. If the view exists it will show the existing code. So you can modify it.
|
113
|
+
|
114
|
+
|
115
|
+
To cancel creation of the view, just empty the contents of the file and save.
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
@@ -5,7 +5,8 @@ module Couchup
|
|
5
5
|
commands = param.nil? ? Commands.constants : [param.camelize]
|
6
6
|
commands.each do |stuff|
|
7
7
|
k = Commands.const_get(stuff)
|
8
|
-
print stuff.underscore
|
8
|
+
print stuff.underscore
|
9
|
+
print (stuff.underscore.size > 10) ? "\t" : "\t\t"
|
9
10
|
puts k.respond_to?(:describe) ? k.describe : "No Help"
|
10
11
|
end
|
11
12
|
end
|
data/lib/couchup/mapreduce.rb
CHANGED
data/lib/couchup/version.rb
CHANGED