rumai 3.2.2 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. data/CREDITS +27 -5
  2. data/bin/rumai +12 -37
  3. data/lib/rumai/inochi.rb +8 -17
  4. data/lib/rumai/irb.rb +21 -0
  5. data/man.html +914 -0
  6. data/man/man1/rumai.1.gz +0 -0
  7. metadata +19 -94
  8. data/HISTORY +0 -350
  9. data/INSTALL +0 -33
  10. data/MANUAL +0 -26
  11. data/README +0 -92
  12. data/USAGE +0 -297
  13. data/doc/ann.xml +0 -61
  14. data/doc/api/IO.html +0 -119
  15. data/doc/api/Integer.html +0 -171
  16. data/doc/api/Rumai.html +0 -1540
  17. data/doc/api/Rumai/Area.html +0 -1485
  18. data/doc/api/Rumai/Chain.html +0 -301
  19. data/doc/api/Rumai/Client.html +0 -2451
  20. data/doc/api/Rumai/ClientContainer.html +0 -301
  21. data/doc/api/Rumai/ExportInstanceMethods.html +0 -103
  22. data/doc/api/Rumai/IXP.html +0 -94
  23. data/doc/api/Rumai/IXP/Agent.html +0 -1625
  24. data/doc/api/Rumai/IXP/Agent/FidStream.html +0 -959
  25. data/doc/api/Rumai/IXP/Agent/RangedPool.html +0 -381
  26. data/doc/api/Rumai/IXP/Error.html +0 -110
  27. data/doc/api/Rumai/IXP/Fcall.html +0 -503
  28. data/doc/api/Rumai/IXP/Qid.html +0 -207
  29. data/doc/api/Rumai/IXP/Rattach.html +0 -148
  30. data/doc/api/Rumai/IXP/Rauth.html +0 -148
  31. data/doc/api/Rumai/IXP/Rclunk.html +0 -148
  32. data/doc/api/Rumai/IXP/Rcreate.html +0 -148
  33. data/doc/api/Rumai/IXP/Rerror.html +0 -148
  34. data/doc/api/Rumai/IXP/Rflush.html +0 -148
  35. data/doc/api/Rumai/IXP/Ropen.html +0 -148
  36. data/doc/api/Rumai/IXP/Rread.html +0 -148
  37. data/doc/api/Rumai/IXP/Rremove.html +0 -148
  38. data/doc/api/Rumai/IXP/Rstat.html +0 -148
  39. data/doc/api/Rumai/IXP/Rversion.html +0 -148
  40. data/doc/api/Rumai/IXP/Rwalk.html +0 -148
  41. data/doc/api/Rumai/IXP/Rwrite.html +0 -148
  42. data/doc/api/Rumai/IXP/Rwstat.html +0 -148
  43. data/doc/api/Rumai/IXP/Stat.html +0 -335
  44. data/doc/api/Rumai/IXP/Stream.html +0 -194
  45. data/doc/api/Rumai/IXP/Struct.html +0 -586
  46. data/doc/api/Rumai/IXP/Struct/ClassField.html +0 -242
  47. data/doc/api/Rumai/IXP/Struct/Field.html +0 -782
  48. data/doc/api/Rumai/IXP/Struct/Field/CounteeField.html +0 -227
  49. data/doc/api/Rumai/IXP/Struct/Field/CounterField.html +0 -153
  50. data/doc/api/Rumai/IXP/Struct/Integer8Field.html +0 -242
  51. data/doc/api/Rumai/IXP/Struct/StringField.html +0 -206
  52. data/doc/api/Rumai/IXP/Tattach.html +0 -148
  53. data/doc/api/Rumai/IXP/Tauth.html +0 -148
  54. data/doc/api/Rumai/IXP/Tclunk.html +0 -148
  55. data/doc/api/Rumai/IXP/Tcreate.html +0 -148
  56. data/doc/api/Rumai/IXP/Terror.html +0 -231
  57. data/doc/api/Rumai/IXP/Tflush.html +0 -148
  58. data/doc/api/Rumai/IXP/Topen.html +0 -240
  59. data/doc/api/Rumai/IXP/Tread.html +0 -148
  60. data/doc/api/Rumai/IXP/Tremove.html +0 -148
  61. data/doc/api/Rumai/IXP/Tstat.html +0 -148
  62. data/doc/api/Rumai/IXP/Tversion.html +0 -162
  63. data/doc/api/Rumai/IXP/Twalk.html +0 -148
  64. data/doc/api/Rumai/IXP/Twrite.html +0 -148
  65. data/doc/api/Rumai/IXP/Twstat.html +0 -148
  66. data/doc/api/Rumai/Node.html +0 -1406
  67. data/doc/api/Rumai/View.html +0 -1587
  68. data/doc/api/Rumai/WidgetImpl.html +0 -333
  69. data/doc/api/Rumai/WidgetNode.html +0 -246
  70. data/doc/api/String.html +0 -258
  71. data/doc/api/StringIO.html +0 -119
  72. data/doc/api/Time.html +0 -247
  73. data/doc/api/_index.html +0 -581
  74. data/doc/api/class_list.html +0 -36
  75. data/doc/api/css/common.css +0 -1
  76. data/doc/api/css/full_list.css +0 -50
  77. data/doc/api/css/style.css +0 -273
  78. data/doc/api/file.LICENSE.html +0 -73
  79. data/doc/api/file_list.html +0 -38
  80. data/doc/api/frames.html +0 -13
  81. data/doc/api/index.html +0 -73
  82. data/doc/api/js/app.js +0 -111
  83. data/doc/api/js/full_list.js +0 -117
  84. data/doc/api/js/jquery.js +0 -19
  85. data/doc/api/method_list.html +0 -1491
  86. data/doc/api/top-level-namespace.html +0 -89
  87. data/doc/index.html +0 -2655
  88. data/inochi.opts +0 -31
  89. data/test/rumai/ixp/message_test.rb +0 -245
  90. data/test/runner +0 -25
  91. data/test/test_helper.rb +0 -1
data/INSTALL DELETED
@@ -1,33 +0,0 @@
1
- %# #%
2
- %# You can read this document in its full glory by #%
3
- %# opening ./doc/index.html in your favorite Web browser. #%
4
- %# #%
5
-
6
- %#----------------------------------------------------------------------------
7
- %| section "Prerequisites"
8
- %#----------------------------------------------------------------------------
9
-
10
- * [Ruby](http://ruby-lang.org) 1.8.6 or newer.
11
-
12
- * [RubyGems](http://rubygems.org) 1.3.6 or newer.
13
-
14
- * [wmii](http://wmii.suckless.org) 3.6 or newer.
15
-
16
- %#----------------------------------------------------------------------------
17
- %| section "Installing"
18
- %#----------------------------------------------------------------------------
19
-
20
- %|command! "gem install rumai"
21
-
22
- %#----------------------------------------------------------------------------
23
- %| section "Upgrading"
24
- %#----------------------------------------------------------------------------
25
-
26
- %|command! "gem update rumai"
27
-
28
- %#----------------------------------------------------------------------------
29
- %| section "Uninstalling"
30
- %#----------------------------------------------------------------------------
31
-
32
- %|command! "gem uninstall rumai"
33
-
data/MANUAL DELETED
@@ -1,26 +0,0 @@
1
- %# #%
2
- %# You can read this document in its full glory by #%
3
- %# opening ./doc/index.html in your favorite Web browser. #%
4
- %# #%
5
-
6
- % api_reference_url = 'api/index.html'
7
- % source_code_tool = '[Git](http://git-scm.com)'
8
- % source_code_url = 'http://github.com/sunaku/rumai'
9
- % issue_tracker_url = 'http://github.com/sunaku/rumai/issues'
10
- % ruby_url = 'http://ruby-lang.org'
11
- % wmii_url = 'http://wmii.suckless.org'
12
- % wmii_ixp_url = 'http://libs.suckless.org/libixp'
13
- % p9p_url = 'http://cm.bell-labs.com/magic/man2html/5/intro'
14
-
15
- %|part "Welcome"
16
- %+ "README"
17
-
18
- %|part "Setup"
19
- %+ "INSTALL"
20
-
21
- %|part "Usage"
22
- %+ "USAGE"
23
-
24
- %|part "History"
25
- %|project_history
26
- %+ "HISTORY"
data/README DELETED
@@ -1,92 +0,0 @@
1
- %# #%
2
- %# You can read this document in its full glory by #%
3
- %# opening ./doc/index.html in your favorite Web browser. #%
4
- %# #%
5
-
6
- %#----------------------------------------------------------------------------
7
- %| project_summary
8
- %#----------------------------------------------------------------------------
9
-
10
- Rumai is a [Ruby](<%= ruby_url %>) interface to
11
- the [wmii](<%= wmii_url %>) window manager.
12
-
13
- %#----------------------------------------------------------------------------
14
- %| paragraph "Resources"
15
- %#----------------------------------------------------------------------------
16
-
17
- * <%= xref "History", "What's new?" %> ---
18
- release notes and project history.
19
-
20
- * [Issue tracker](<%= issue_tracker_url %>) ---
21
- report bugs, request features, or ask for help.
22
-
23
- * [Source code](<%= source_code_url %>) ---
24
- browse online or obtain using <%= source_code_tool %>
25
-
26
- * [API reference](<%= api_reference_url %>) ---
27
- documentation for source code.
28
-
29
- * [Project home](<%= Rumai::WEBSITE %>) ---
30
- the official project home page.
31
-
32
- %#----------------------------------------------------------------------------
33
- %| section "Features"
34
- %#----------------------------------------------------------------------------
35
-
36
- Rumai is exciting because:
37
-
38
- * It excels at dynamic arrangement of clients, columns, views, and tags.
39
-
40
- * It provides an <%= xref 'shell', 'interactive shell' %> for live
41
- entertainment and experimentation.
42
-
43
- * It provides a pure Ruby client for the [9P2000 protocol](<%= p9p_url %>)
44
- used by wmii's [IXP file-system interface](<%= wmii_ixp_url %>).
45
-
46
- * It powers [many Ruby-based wmii configurations][2], including [my own][1].
47
-
48
- [1]: http://github.com/sunaku/wmiirc/
49
- [2]: http://github.com/sunaku/wmiirc/network
50
-
51
- %#----------------------------------------------------------------------------
52
- %| section "Etymology"
53
- %#----------------------------------------------------------------------------
54
-
55
- The word "wmii" is difficult to pronounce because it is an abbreviation, not
56
- an acronym. If we were to treat it as an acronym, the closest pronounciation
57
- would be, in my mind, something like "vim-eye".
58
-
59
- Since this is a Ruby library, I added a "roo" and worked it through:
60
-
61
- * vim-eye
62
- * roo-vim-eye
63
- * roovm-eye
64
-
65
- And thus we get "Rumai".
66
-
67
- %#----------------------------------------------------------------------------
68
- %| section "License"
69
- %#----------------------------------------------------------------------------
70
-
71
- %# See the file named "LICENSE" for details.
72
- %< "LICENSE"
73
-
74
- %#----------------------------------------------------------------------------
75
- %| section "Credits"
76
- %#----------------------------------------------------------------------------
77
-
78
- Rumai is made possible by <%= xref "History",
79
- "contributions" %> from users like you:
80
-
81
- %# See the file named "CREDITS" for details.
82
- %< "CREDITS"
83
-
84
- %#----------------------------------------------------------------------------
85
- %| section "Related works"
86
- %#----------------------------------------------------------------------------
87
-
88
- * [r9p](http://libs.suckless.org/r9p)
89
- * [Rii](http://rubyforge.org/projects/rii/)
90
- * [Ruby-IXP](http://home.gna.org/rubyixp/)
91
- * [ruby-wmii](http://eigenclass.org/hiki.rb?wmii+ruby)
92
-
data/USAGE DELETED
@@ -1,297 +0,0 @@
1
- %# #%
2
- %# You can read this document in its full glory by #%
3
- %# opening ./doc/index.html in your favorite Web browser. #%
4
- %# #%
5
-
6
- %#----------------------------------------------------------------------------
7
- %| section "Interactive shell", "shell"
8
- %#----------------------------------------------------------------------------
9
-
10
- %|command! "rumai"
11
-
12
- This command starts an IRB (Interactive Ruby Shell) session, which places
13
- you a command prompt like this:
14
-
15
- irb(Rumai):001:0>
16
-
17
- The <tt>irb(Rumai)</tt> token in the command prompt indicates that
18
- commands will be evaluated _inside_ the `Rumai` module. As a result, you
19
- can omit the "Rumai" prefix from your commands if you wish.
20
-
21
- For example, to get the current client object, you can type `curr_client`
22
- instead of having to type `Rumai.curr_client` at the prompt. Both
23
- commands achieve the same effect.
24
-
25
- The next thing to note is that **TAB completion** is enabled by default.
26
- So you can type part of a command and press the TAB key to see a list of
27
- possible completions.
28
-
29
- %#----------------------------------------------------------------------------
30
- %| section "Live demonstration", "Tutorial"
31
- %#----------------------------------------------------------------------------
32
-
33
- Now that you know <%= xref "shell", "how to start the interactive shell" %>,
34
- let us walk through a (hopefully) quick demonstration that highlights the
35
- main features of Rumai. You can follow along by copying & pasting the
36
- presented commands into the interactive shell.
37
-
38
- %|open_terms = lambda do
39
- Launch a few terminals so that we have something to work with:
40
-
41
- %|code :ruby
42
- colors = %w[ red green blue black orange brown gray navy gold ]
43
- colors.each {|c| system "xterm -bg #{c} -title #{c} -e sh -c read &" }
44
-
45
- %|close_terms = lambda do
46
- Close the terminals we launched earlier:
47
-
48
- %|code :ruby
49
- terms = curr_view.clients.select {|c| colors.include? c.label.read }
50
- terms.each {|c| c.kill }
51
-
52
- %#--------------------------------------------------------------------------
53
- %| section "Automated client arrangement"
54
- %#--------------------------------------------------------------------------
55
-
56
- % open_terms.call
57
-
58
- Arrange all clients in a grid:
59
-
60
- %|code :ruby
61
- curr_view.arrange_in_grid
62
-
63
- Arrange all clients in a diamond shape:
64
-
65
- %|code :ruby
66
- curr_view.arrange_in_diamond
67
-
68
- Arrange all clients like LarsWM does:
69
-
70
- %|code :ruby
71
- curr_view.arrange_as_larswm
72
-
73
- % close_terms.call
74
-
75
- %#--------------------------------------------------------------------------
76
- %| section "Multiple client grouping"
77
- %#--------------------------------------------------------------------------
78
-
79
- % open_terms.call
80
-
81
- Add the red, green, and blue terminals into the "grouping":
82
-
83
- %|code :ruby
84
- terms = curr_view.clients.select do |c|
85
- %%w[red green blue].include? c.label.read
86
- end
87
- terms.each {|c| c.group }
88
-
89
- You should now see a new button labelled as "@" on the left-hand side of
90
- wmii's bar, indicating that there is now a new view labelled "@" in wmii.
91
- Let us inspect what clients this mysterious view contains:
92
-
93
- %|code :ruby
94
- v = View.new "@"
95
- puts v.clients.map {|c| c.label.read }
96
-
97
- Aha! The mysterious view contains the red, green, and blue clients we
98
- recently "grouped". Thus, by adding a client to the "grouping", we are
99
- simply tagging the client with the "@" token.
100
-
101
- Now that we have put some clients into the "grouping", let us move all
102
- clients in the grouping to the floating area in the current view:
103
-
104
- %|code :ruby
105
- grouping.each {|c| c.send "toggle" }
106
-
107
- Neat! Let us bring them back into the managed area:
108
-
109
- %|code :ruby
110
- grouping.each {|c| c.send "toggle" }
111
-
112
- % close_terms.call
113
-
114
- In summary, you can select multiple clients (by adding them to the
115
- "grouping") and perform operations on them. This is useful when you want
116
- to do something with a group of clients but do not want to manually focus
117
- one, perform the action, focus the next one, and so on.
118
-
119
- Another important aspect is that selected clients stay selected until they
120
- are unselected. This allows you to continue performing tasks on the
121
- selection without having to reselect the same clients after every
122
- operation.
123
-
124
- %#--------------------------------------------------------------------------
125
- %| section "Easy column manipulation"
126
- %#--------------------------------------------------------------------------
127
-
128
- % open_terms.call
129
-
130
- You can insert a group of clients to the top, bottom, or after the
131
- currently focused client of _any_ column using Array-like methods.
132
-
133
- Give each client its own column (one client per column):
134
-
135
- %|code :ruby
136
- curr_view.each_column {|c| c.length = 1 }
137
-
138
- Put (at most) three clients in every column:
139
-
140
- %|code :ruby
141
- curr_view.each_column {|c| c.length = 3 }
142
-
143
- Move the red, green, and blue clients into the floating area:
144
-
145
- %|code :ruby
146
- rgb = %w[red green blue]
147
- terms = curr_view.clients.select {|c| rgb.include? c.label.read }
148
- curr_view.areas[0].push terms
149
-
150
- Slurp all floating clients into the last column:
151
-
152
- %|code :ruby
153
- list = curr_view.areas
154
- a, b = list.first, list.last
155
- b.concat a
156
-
157
- Set the last column's layout to stacking mode:
158
-
159
- %|code :ruby
160
- b.layout = 'stack'
161
-
162
- Move the red, green, and blue clients to the top of the second column:
163
-
164
- %|code :ruby
165
- curr_view.areas[2].unshift terms
166
-
167
- Move the red, green, and blue clients to the bottom of the third column:
168
-
169
- %|code :ruby
170
- curr_view.areas[3].push terms
171
-
172
- % close_terms.call
173
-
174
- %#--------------------------------------------------------------------------
175
- %| section "Easy client manipulation"
176
- %#--------------------------------------------------------------------------
177
-
178
- % open_terms.call
179
-
180
- Obtain a reference to the red client:
181
-
182
- %|code :ruby
183
- red = curr_view.clients.find {|c| c.label.read == "red" }
184
-
185
- Show the red client's current tags:
186
-
187
- %|code :ruby
188
- red.tags
189
-
190
- Add the "foo" and "bar" tags to the red client:
191
-
192
- %|code :ruby
193
- red.tag "foo", "bar"
194
-
195
- Remove the "bar" tag from the red client:
196
-
197
- %|code :ruby
198
- red.untag "bar"
199
-
200
- Do complex operations on the red client's tags:
201
-
202
- %|code :ruby
203
- red.with_tags { concat %w[a b c]; push 'z'; delete 'c' }
204
-
205
- Focus the next client after the red client:
206
-
207
- %|code :ruby
208
- red.next.focus
209
- curr_client == red.next #=> true
210
-
211
- Notice that by focusing a client, we make it the current client.
212
-
213
- Focus the red client on a different view:
214
-
215
- %|code :ruby
216
- orig = curr_view
217
- v = red.views.last
218
- red.focus v
219
-
220
- Return to the original view:
221
-
222
- %|code :ruby
223
- orig.focus
224
-
225
- Send the red client to the last column:
226
-
227
- %|code :ruby
228
- red.send curr_view.areas.last
229
-
230
- % close_terms.call
231
-
232
- %#--------------------------------------------------------------------------
233
- %| section "Traversing the file system"
234
- %#--------------------------------------------------------------------------
235
-
236
- Show the root node of wmii's IXP file system:
237
-
238
- %|code :ruby
239
- fs
240
-
241
- Show the names of all files at the root level:
242
-
243
- %|code :ruby
244
- fs.entries
245
-
246
- Show the parent of the root node:
247
-
248
- %|code :ruby
249
- fs.parent
250
-
251
- Show the children of the root node:
252
-
253
- %|code :ruby
254
- fs.children
255
-
256
- Navigate into to the <tt>/lbar/</tt> directory:
257
-
258
- %|code :ruby
259
- n1 = fs.lbar
260
- n2 = fs['lbar']
261
- n1 == n2 #=> true
262
- left_bar = n1
263
-
264
- Notice that you can traverse the file system hierarchy by simply calling
265
- methods on node objects. Alternatively, you can traverse by specifying an
266
- arbitrary sub-path (relative path) using the `[]` operator on a node.
267
-
268
- Create a new temporary button:
269
-
270
- %|code :ruby
271
- b = left_bar.rumai_example # path of new button
272
- b.exist? #=> false
273
- b.create
274
- b.exist? #=> true
275
-
276
- You should now see an empty button on the left-hand side of the wmii bar.
277
-
278
- Color the button black-on-white and label it as "hello world":
279
-
280
- %|code :ruby
281
- content = "#000000 #ffffff #000000 hello world"
282
- b.write content
283
- b.read == content #=> true
284
-
285
- Remove the temporary button:
286
-
287
- %|code :ruby
288
- b.remove
289
- b.exist? #=> false
290
-
291
- %#--------------------------------------------------------------------------
292
- %| section "More commands"
293
- %#--------------------------------------------------------------------------
294
-
295
- See the `Rumai` module in the [API documentation](api/index.html) for a
296
- complete list of commands (method calls really) and their documentation.
297
-