sambala 0.8.9 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/sambala.rb +60 -55
  2. data/test/tc_sambala_main.rb +60 -5
  3. metadata +2 -2
data/lib/sambala.rb CHANGED
@@ -62,50 +62,47 @@ class Sambala
62
62
 
63
63
  # The +cd+ instance method takes only one argument, the path to which you wish to change directory
64
64
  # === Parameters
65
- # * :to = the path to change directory to
65
+ # * _to_ = the path to change directory to
66
66
  # === Interactive Returns
67
67
  # * _boolean_ = confirms if +cd+ operation completed successfully
68
68
  # === Example
69
- # samba.cd(:to => 'aFolder/anOtherFolder/') # => true
70
- def cd(opts={:to => ''})
71
- execute_all('cd', opts[:to])
69
+ # samba.cd('aFolder/anOtherFolder/') # => true
70
+ def cd(to='.')
71
+ execute_all('cd',to)
72
72
  end
73
73
 
74
- # The +du+ instance does exactly what _du_ usually does: estimates file space usage.
75
- # === Parameters
76
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
74
+ # The +du+ instance method does exactly what _du_ usually does: estimates file space usage.
77
75
  # === Interactive Returns
78
76
  # * _string_ = +du+ command results
79
77
  # === Example
80
78
  # puts samba.du # => 34923 blocks of size 2097152. 27407 blocks available
81
79
  # Total number of bytes: 59439077
82
- def du(opts={:queue=>false})
83
- execute('du', '', opts[:queue])[1]
80
+ def du
81
+ execute('du', '', false)[1]
84
82
  end
85
83
 
86
84
  # The +del+ instance method delete files on smb shares
87
85
  # === Parameters
88
- # * :mask = the mask matching the file to be deleted inside the current working directory.
89
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
86
+ # * _mask_ = the mask matching the file to be deleted inside the current working directory.
87
+ # * _queue_ = sets queue processing mode. Defaults to interactive mode when no option given.
90
88
  # === Interactive Returns
91
89
  # * _boolean_ = confirms if +del+ operation completed successfully
92
90
  # === Example
93
- # samba.del(:mask => 'aFile') # => true
94
- def del(opts={:mask => nil, :queue=>false})
95
- execute('del', opts[:mask], opts[:queue])[0]
91
+ # samba.del('aFile') # => true
92
+ def del(mask, queue=false)
93
+ execute('del', mask, queue)[0]
96
94
  end
97
95
  alias rm del
98
96
  # The exist? instance method is borrowed from Ruby File Class idiome.
99
97
  # It is used to test the presence of files or directories on the server
100
98
  # === Parameters
101
- # * :mask = the mask matching the file or directory to look for.
102
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
99
+ # * _mask_ = the mask matching the file or directory to look for.
103
100
  # === Interactive Returns
104
101
  # * _boolean_ = confirm the presence of a matching file or directory
105
102
  # === Example
106
- # samba.exist?(:mask => 'aFile') # => true
107
- def exist?(opts={:mask => nil, :queue => false})
108
- execute('ls', opts[:mask], opts[:queue])[0]
103
+ # samba.exist?('aFile') # => true
104
+ def exist?(mask)
105
+ execute('ls', mask, false)[0]
109
106
  end
110
107
 
111
108
  # The +get+ instance method copy files from smb shares.
@@ -125,13 +122,13 @@ class Sambala
125
122
 
126
123
  # The +lcd+ instance method changes the current working directory on the local machine to the directory specified.
127
124
  # === Parameters
128
- # * :to = the path to change directory to
125
+ # * _to_ = the path to change directory to
129
126
  # === Interactive Returns
130
127
  # * _boolean_ = confirms if +cd+ operation completed successfully
131
128
  # === Example
132
- # samba.lcd(:to => 'aLocalFolder/anOtherFolder/') # => true
133
- def lcd(opts={:to => ''})
134
- execute_all('lcd', opts[:to])
129
+ # samba.lcd('aLocalFolder/anOtherFolder/') # => true
130
+ def lcd(to='.')
131
+ execute_all('lcd', to)
135
132
  end
136
133
 
137
134
  # The +lowercase+ method toggles lowercasing of filenames for the get command.
@@ -147,15 +144,14 @@ class Sambala
147
144
 
148
145
  # The method +ls+ or its alias _dir_, list the files and directories matching :mask in the current working directory on the smb server.
149
146
  # === Parameters
150
- # * :mask = the mask matching the file to be listed inside the current working directory.
151
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
147
+ # * _mask_ = the mask matching the file to be listed inside the current working directory.
152
148
  # === Interactive Returns
153
149
  # * _string_ = containing +ls+ command results
154
150
  # === Example
155
151
  # samba.ls # => genpi.rb A 81 Mon Nov 17 22:12:40 2008
156
152
  # 34923 blocks of size 2097152. 27407 blocks available
157
- def ls(opts={:mask => nil, :queue=>false})
158
- execute('ls' ,opts[:mask], opts[:queue])[1]
153
+ def ls(mask='')
154
+ execute('ls' ,mask, false)[1]
159
155
  end
160
156
  alias dir ls
161
157
 
@@ -163,50 +159,50 @@ class Sambala
163
159
  # See man page for smbclient to get more on the details of operation
164
160
  # This method has no queue processing option
165
161
  # === Parameters
166
- # * :mask = the matching filter
162
+ # * _mask_ = the matching filter
167
163
  # === Example
168
- # samba.mask(:mask => 'filter*') # => true
169
- def mask(opts={:mask => nil})
170
- execute_all('mask' ,opts[:mask])
164
+ # samba.mask('filter*') # => true
165
+ def mask(mask)
166
+ execute_all('mask' ,mask)
171
167
  end
172
168
 
173
169
  # The +mget+ method copy all files matching :mask from the server to the client machine
174
170
  # See man page for smbclient to get more on the details of operation
175
171
  # === Parameters
176
- # * :mask = the file matching filter
177
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
172
+ # * _mask_ = the file matching filter
173
+ # * _queue_ = sets queue processing mode. Defaults to interactive mode when no option given.
178
174
  # === Interactive Returns
179
175
  # _array_ = [ _booleanSuccess_, _mgetResultMessage_ ]
180
176
  # === Example
181
- # samba.mget(:mask => 'file*') # => [true, "getting file \\file_new.txt of size 3877 as file_new.txt (99.6 kb/s) (average 89.9 kb/s)\r\n"]
182
- def mget(opts={:mask => nil, :queue => false})
183
- execute('mget' ,opts[:mask], opts[:queue])
177
+ # samba.mget('file*') # => [true, "getting file \\file_new.txt of size 3877 as file_new.txt (99.6 kb/s) (average 89.9 kb/s)\r\n"]
178
+ def mget(mask,queue=false)
179
+ execute('mget' ,mask, queue)
184
180
  end
185
181
 
186
182
  # The method +mkdir+ or its alias _md_, creates a new directory on the server.
187
183
  # === Parameters
188
- # * :path = the directory to create
189
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
184
+ # * _path_ = the directory to create
185
+ # * _queue_ = sets queue processing mode. Defaults to interactive mode when no option given.
190
186
  # === Interactive Returns
191
187
  # * _boolean_ = confirms if +mkdir+ operation completed successfully
192
188
  # === Example
193
- # samba.mkdir(:path => 'aFolder/aNewFolder') # => true
194
- def mkdir(opts={:path => '', :queue => false})
195
- execute('mkdir' ,opts[:path], opts[:queue])[0]
189
+ # samba.mkdir('aFolder/aNewFolder') # => true
190
+ def mkdir(path, queue=false)
191
+ execute('mkdir' ,path, queue)[0]
196
192
  end
197
193
  alias md mkdir
198
194
 
199
195
  # The +mput+ method copy all files matching :mask in the current working directory on the local machine to the server.
200
196
  # See man page for smbclient to get more on the details of operation
201
197
  # === Parameters
202
- # * :mask = the file matching filter
203
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
198
+ # * _mask_ = the file matching filter
199
+ # * _queue_ = sets queue processing mode. Defaults to interactive mode when no option given.
204
200
  # === Interactive Returns
205
201
  # _array_ = [ _booleanSuccess_, _mputResultMessage_ ]
206
202
  # === Example
207
- # samba.mput(:mask => 'file*') # => [true, "putting file \\file_new.txt of size 1004 as file_new.txt (65.4 kb/s) (average 65.4 kb/s)\r\n"]
208
- def mput(opts={:mask => nil, :queue => false})
209
- execute('mput' ,opts[:mask], opts[:queue])
203
+ # samba.mput('file*') # => [true, "putting file \\file_new.txt of size 1004 as file_new.txt (65.4 kb/s) (average 65.4 kb/s)\r\n"]
204
+ def mput(mask, queue=false)
205
+ execute('mput' ,mask, queue)
210
206
  end
211
207
 
212
208
  # The +put+ instance method copy files to smb shares.
@@ -237,26 +233,35 @@ class Sambala
237
233
 
238
234
  # The +rmdir+ method deletes the specified directory
239
235
  # === Parameters
240
- # * :path = the relative path to the directory to be deleted
241
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
236
+ # * _path_ = the relative path to the directory to be deleted
237
+ # * _queue_ = sets queue processing mode. Defaults to interactive mode when no option given.
242
238
  # === Interactive Returns
243
239
  # * _boolean_ = confirms if +rmdir+ operation completed successfully
244
240
  # === Example
245
- # samba.rmdir(:path => 'mydir') # => true
246
- def rmdir(opts={:path=>nil,:queue=>false})
247
- execute('rmdir' ,opts[:path], opts[:queue])[0]
241
+ # samba.rmdir('mydir') # => true
242
+ def rmdir(path,queue=false)
243
+ execute('rmdir' , path, queue)[0]
248
244
  end
249
245
 
250
246
  # The +volume+ method returns remote volume information.
251
- # === Parameters
252
- # * :queue = sets queue processing mode. Defaults to interactive mode when no option given.
253
247
  # === Interactive Returns
254
248
  # * _string_ = containing +volume+ command results
255
249
  # === Example
256
250
  # samba.volume # => "Volume: |geminishare| serial number 0x6d723053"
257
- def volume(opts={:queue=>false})
258
- execute('volume' ,'', opts[:queue])[1]
251
+ def volume
252
+ execute('volume' ,'', false)[1]
259
253
  end
254
+
255
+ # The +local+ methods allow shell command execution on the local machine.
256
+ # === Parameters
257
+ # * _command_ = the shell comand to be executed locally
258
+ # === Interactive Returns
259
+ # * _string_ = the normal return message of the command
260
+ # === Example
261
+ # samba.local('mkdir mydir')
262
+ def local(command)
263
+ execute('!', command, false)[1]
264
+ end
260
265
 
261
266
  # The +queue_results+ methods collect a done queue items results
262
267
  # === Example
@@ -2,7 +2,17 @@ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
2
  require 'test/unit'
3
3
  require 'sambala'
4
4
 
5
- TESTDIR = 'sambala_test'
5
+ TESTFILE = 'sambala_test'
6
+ TESTDIR = 'sambala_temp'
7
+ WELCOME = "
8
+ .|'''.| '|| '||
9
+ ||.. ' .... .. .. .. || ... .... || ....
10
+ ''|||. '' .|| || || || ||' || '' .|| || '' .||
11
+ . '|| .|' || || || || || | .|' || || .|' ||
12
+ |'....|' '|..'|' .|| || ||. '|...' '|..'|' .||. '|..'|'
13
+
14
+
15
+ /////////////////////////////////////////////////////////////"
6
16
 
7
17
  class TestSambalaMain < Test::Unit::TestCase
8
18
 
@@ -17,16 +27,20 @@ class TestSambalaMain < Test::Unit::TestCase
17
27
  check_mkdir(TESTDIR)
18
28
  check_exist(TESTDIR)
19
29
  check_cd(TESTDIR)
30
+
20
31
  ls_two = check_ls
21
32
  assert(ls_one != ls_two)
33
+ check_lcd_put_get
22
34
  # check_exist
23
35
  check_cd('..')
24
36
  check_rmdir(TESTDIR)
25
37
  end
26
38
 
27
39
  def teardown
40
+ @samba.rmdir(TESTDIR) if @samba.exist?(TESTDIR)
28
41
  close = @samba.close
29
42
  assert(close)
43
+ Dir.rmdir(TESTDIR) if File.exist?(TESTDIR)
30
44
  end
31
45
 
32
46
  private
@@ -37,6 +51,7 @@ class TestSambalaMain < Test::Unit::TestCase
37
51
  end
38
52
 
39
53
  def get_samba_param_from_input
54
+ puts WELCOME
40
55
  puts "I will need you to input some working Samba connection settings..."
41
56
  print "\n"; sleep 1
42
57
  print "host name or IP: "
@@ -73,23 +88,63 @@ class TestSambalaMain < Test::Unit::TestCase
73
88
  end
74
89
 
75
90
  def check_cd(path)
76
- cd = @samba.cd(:to => path)
91
+ cd = @samba.cd(path)
77
92
  assert_equal(true,cd)
78
93
  end
79
94
 
80
95
  def check_exist(path)
81
- exist = @samba.exist?(:mask => path)
96
+ exist = @samba.exist?(path)
82
97
  assert_equal(true,exist)
83
98
  end
84
99
 
85
100
  def check_mkdir(path)
86
- re = @samba.mkdir(:path => path)
101
+ re = @samba.mkdir(path)
87
102
  assert_equal(true,re)
88
103
  end
89
104
 
90
105
  def check_rmdir(path)
91
- re = @samba.rmdir(:path => path)
106
+ re = @samba.rmdir(path)
107
+ assert_equal(true,re)
108
+ end
109
+
110
+ def check_lcd_put_get
111
+ before = @samba.local('ls')
112
+ @samba.local("mkdir #{TESTDIR}")
113
+ after = @samba.local('ls')
114
+ assert(before != after)
115
+
116
+ re = @samba.lcd(TESTDIR)
117
+ assert_equal(true,re)
118
+ before2 = @samba.local('ls')
119
+ @samba.local("touch #{TESTFILE}")
120
+ after2 = @samba.local('ls')
121
+ assert(before2 != after2)
122
+
123
+
124
+ re = @samba.put(:from => TESTFILE, :to => TESTFILE)
125
+ assert_kind_of(Array,re)
126
+ assert_equal(true,re[0])
127
+
128
+ @samba.local("rm #{TESTFILE}")
129
+ after2_2 = @samba.local('ls')
130
+ assert(before2 == after2_2)
131
+
132
+ re = @samba.get(:from => TESTFILE, :to => TESTFILE)
133
+ assert_kind_of(Array,re)
134
+ assert_equal(true,re[0])
135
+
136
+ re = @samba.del(TESTFILE)
137
+ assert_equal(true,re)
138
+
139
+ after2_3 = @samba.local('ls')
140
+ assert(after2 == after2_3)
141
+ @samba.local("rm #{TESTFILE}")
142
+
143
+ re = @samba.lcd('..')
92
144
  assert_equal(true,re)
145
+ @samba.local("rmdir #{TESTDIR}")
146
+ after = @samba.local('ls')
147
+ assert(before == after)
93
148
  end
94
149
 
95
150
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sambala
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.9
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Louis-Philippe Perron
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-27 00:00:00 -05:00
12
+ date: 2009-01-28 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency