rumai 3.2.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CREDITS +27 -5
- data/bin/rumai +12 -37
- data/lib/rumai/inochi.rb +8 -17
- data/lib/rumai/irb.rb +21 -0
- data/man.html +914 -0
- data/man/man1/rumai.1.gz +0 -0
- metadata +19 -94
- data/HISTORY +0 -350
- data/INSTALL +0 -33
- data/MANUAL +0 -26
- data/README +0 -92
- data/USAGE +0 -297
- data/doc/ann.xml +0 -61
- data/doc/api/IO.html +0 -119
- data/doc/api/Integer.html +0 -171
- data/doc/api/Rumai.html +0 -1540
- data/doc/api/Rumai/Area.html +0 -1485
- data/doc/api/Rumai/Chain.html +0 -301
- data/doc/api/Rumai/Client.html +0 -2451
- data/doc/api/Rumai/ClientContainer.html +0 -301
- data/doc/api/Rumai/ExportInstanceMethods.html +0 -103
- data/doc/api/Rumai/IXP.html +0 -94
- data/doc/api/Rumai/IXP/Agent.html +0 -1625
- data/doc/api/Rumai/IXP/Agent/FidStream.html +0 -959
- data/doc/api/Rumai/IXP/Agent/RangedPool.html +0 -381
- data/doc/api/Rumai/IXP/Error.html +0 -110
- data/doc/api/Rumai/IXP/Fcall.html +0 -503
- data/doc/api/Rumai/IXP/Qid.html +0 -207
- data/doc/api/Rumai/IXP/Rattach.html +0 -148
- data/doc/api/Rumai/IXP/Rauth.html +0 -148
- data/doc/api/Rumai/IXP/Rclunk.html +0 -148
- data/doc/api/Rumai/IXP/Rcreate.html +0 -148
- data/doc/api/Rumai/IXP/Rerror.html +0 -148
- data/doc/api/Rumai/IXP/Rflush.html +0 -148
- data/doc/api/Rumai/IXP/Ropen.html +0 -148
- data/doc/api/Rumai/IXP/Rread.html +0 -148
- data/doc/api/Rumai/IXP/Rremove.html +0 -148
- data/doc/api/Rumai/IXP/Rstat.html +0 -148
- data/doc/api/Rumai/IXP/Rversion.html +0 -148
- data/doc/api/Rumai/IXP/Rwalk.html +0 -148
- data/doc/api/Rumai/IXP/Rwrite.html +0 -148
- data/doc/api/Rumai/IXP/Rwstat.html +0 -148
- data/doc/api/Rumai/IXP/Stat.html +0 -335
- data/doc/api/Rumai/IXP/Stream.html +0 -194
- data/doc/api/Rumai/IXP/Struct.html +0 -586
- data/doc/api/Rumai/IXP/Struct/ClassField.html +0 -242
- data/doc/api/Rumai/IXP/Struct/Field.html +0 -782
- data/doc/api/Rumai/IXP/Struct/Field/CounteeField.html +0 -227
- data/doc/api/Rumai/IXP/Struct/Field/CounterField.html +0 -153
- data/doc/api/Rumai/IXP/Struct/Integer8Field.html +0 -242
- data/doc/api/Rumai/IXP/Struct/StringField.html +0 -206
- data/doc/api/Rumai/IXP/Tattach.html +0 -148
- data/doc/api/Rumai/IXP/Tauth.html +0 -148
- data/doc/api/Rumai/IXP/Tclunk.html +0 -148
- data/doc/api/Rumai/IXP/Tcreate.html +0 -148
- data/doc/api/Rumai/IXP/Terror.html +0 -231
- data/doc/api/Rumai/IXP/Tflush.html +0 -148
- data/doc/api/Rumai/IXP/Topen.html +0 -240
- data/doc/api/Rumai/IXP/Tread.html +0 -148
- data/doc/api/Rumai/IXP/Tremove.html +0 -148
- data/doc/api/Rumai/IXP/Tstat.html +0 -148
- data/doc/api/Rumai/IXP/Tversion.html +0 -162
- data/doc/api/Rumai/IXP/Twalk.html +0 -148
- data/doc/api/Rumai/IXP/Twrite.html +0 -148
- data/doc/api/Rumai/IXP/Twstat.html +0 -148
- data/doc/api/Rumai/Node.html +0 -1406
- data/doc/api/Rumai/View.html +0 -1587
- data/doc/api/Rumai/WidgetImpl.html +0 -333
- data/doc/api/Rumai/WidgetNode.html +0 -246
- data/doc/api/String.html +0 -258
- data/doc/api/StringIO.html +0 -119
- data/doc/api/Time.html +0 -247
- data/doc/api/_index.html +0 -581
- data/doc/api/class_list.html +0 -36
- data/doc/api/css/common.css +0 -1
- data/doc/api/css/full_list.css +0 -50
- data/doc/api/css/style.css +0 -273
- data/doc/api/file.LICENSE.html +0 -73
- data/doc/api/file_list.html +0 -38
- data/doc/api/frames.html +0 -13
- data/doc/api/index.html +0 -73
- data/doc/api/js/app.js +0 -111
- data/doc/api/js/full_list.js +0 -117
- data/doc/api/js/jquery.js +0 -19
- data/doc/api/method_list.html +0 -1491
- data/doc/api/top-level-namespace.html +0 -89
- data/doc/index.html +0 -2655
- data/inochi.opts +0 -31
- data/test/rumai/ixp/message_test.rb +0 -245
- data/test/runner +0 -25
- 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
|
-
|