sambala 0.8.9 → 0.9.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 (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