Class: CloudDoor::CloudStorage
- Inherits:
-
Object
- Object
- CloudDoor::CloudStorage
show all
- Defined in:
- lib/cloud_door/cloud_storage.rb
Constant Summary
collapse
- PARENT_DIR_PAT =
regular expression pattern of parent directory
/..\//
- PICK_METHODS =
%w(request_user request_dir request_file)
- ABSTRACT_METHODS =
there is abstract method. should define there method
%w(
load_token
login
request_user
request_dir
request_file
request_download
request_upload
request_delete
request_mkdir
pull_files
format_property
)
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of CloudStorage.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/cloud_door/cloud_storage.rb', line 46
def method_missing(method, *args)
if ABSTRACT_METHODS.include?(method.to_s)
raise AbstractMethodException, "'#{method.to_s}' is abstract method. please define on subclass."
else
super
end
end
|
Instance Attribute Details
#root_id ⇒ Object
Returns the value of attribute root_id.
21
22
23
|
# File 'lib/cloud_door/cloud_storage.rb', line 21
def root_id
@root_id
end
|
#storage_name ⇒ Object
Returns the value of attribute storage_name.
21
22
23
|
# File 'lib/cloud_door/cloud_storage.rb', line 21
def storage_name
@storage_name
end
|
Instance Method Details
#assign_upload_file_name(file_name) ⇒ Object
234
235
236
237
238
239
240
|
# File 'lib/cloud_door/cloud_storage.rb', line 234
def assign_upload_file_name(file_name)
if File.directory?(file_name)
"#{file_name}.zip"
else
file_name
end
end
|
#change_directory(file_name) ⇒ Object
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/cloud_door/cloud_storage.rb', line 114
def change_directory(file_name)
raise FileNameEmptyException if file_name.nil? || file_name.empty?
@file_name = file_name
raise SetIDException unless set_file_id
raise NotDirectoryException if file?(file_name)
items = pull_files
@file_list.write_file_list(items, @file_id, @file_name)
items
rescue => e
handle_exception(e)
end
|
#configuration_init? ⇒ Boolean
66
67
68
|
# File 'lib/cloud_door/cloud_storage.rb', line 66
def configuration_init?
@config.init?
end
|
#delete_file(file_name) ⇒ Object
176
177
178
179
180
181
182
183
184
185
186
187
|
# File 'lib/cloud_door/cloud_storage.rb', line 176
def delete_file(file_name)
@file_name = file_name
raise FileNameEmptyException if @file_name.nil? || @file_name.empty?
raise SetIDException unless set_file_id
request_delete
@parent_id = pull_parent_id
update_file_list
true
rescue => e
handle_exception(e)
end
|
#download_file(file_name) ⇒ Object
144
145
146
147
148
149
150
151
152
153
|
# File 'lib/cloud_door/cloud_storage.rb', line 144
def download_file(file_name)
raise FileNameEmptyException if file_name.nil? || file_name.empty?
@file_name = file_name
raise SetIDException unless set_file_id
raise NotFileException unless file?(file_name)
request_download
File.exist?(@file_name)
rescue => e
handle_exception(e)
end
|
#file?(file_name) ⇒ Boolean
226
227
228
229
230
231
232
|
# File 'lib/cloud_door/cloud_storage.rb', line 226
def file?(file_name)
return false if file_name.nil? || file_name.empty?
return false if file_name =~ PARENT_DIR_PAT
properties = @file_list.pull_file_properties(file_name)
return false unless properties
properties['type'] == 'file' ? true : false
end
|
#file_exist?(file_name) ⇒ Boolean
201
202
203
204
205
206
207
208
209
210
211
212
|
# File 'lib/cloud_door/cloud_storage.rb', line 201
def file_exist?(file_name)
if file_name =~ PARENT_DIR_PAT
return !@file_list.top?(file_name)
end
@parent_id = pull_parent_id
items = pull_files
@parent_id = nil
return false if items.empty? || !items.is_a?(Hash)
items.key?(file_name)
rescue => e
handle_exception(e)
end
|
#has_file?(file_name) ⇒ Boolean
214
215
216
217
218
219
220
221
222
223
224
|
# File 'lib/cloud_door/cloud_storage.rb', line 214
def has_file?(file_name)
raise FileNameEmptyException if file_name.nil? || file_name.empty?
@file_name = file_name
raise SetIDException unless set_file_id
return false if file?(file_name)
items = pull_files
raise NoDataException if items.nil? || !items.is_a?(Hash)
(items.count > 0)
rescue => e
handle_exception(e)
end
|
#isset_account? ⇒ Boolean
78
79
80
|
# File 'lib/cloud_door/cloud_storage.rb', line 78
def isset_account?
@account.isset_account?
end
|
#make_directory(mkdir_name) ⇒ Object
189
190
191
192
193
194
195
196
197
198
199
|
# File 'lib/cloud_door/cloud_storage.rb', line 189
def make_directory(mkdir_name)
@mkdir_name = mkdir_name
raise DirectoryNameEmptyException if @mkdir_name.nil? || @mkdir_name.empty?
@parent_id = pull_parent_id
request_mkdir
update_file_list
true
rescue => e
handle_exception(e)
end
|
#reset_token(token_value) ⇒ Object
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/cloud_door/cloud_storage.rb', line 82
def reset_token(token_value)
raise TokenClassException unless @token.is_a?(Token)
@token.set_attributes(token_value)
session_id = nil
if @config.session_use?
cgi = CGI.new
session = CGI::Session.new(cgi)
session_id = session.session_id
@token.set_locate(session_id)
@file_list.set_locate(session_id)
end
@token.write_token
session_id
rescue => e
handle_exception(e)
end
|
#show_account ⇒ Object
70
71
72
|
# File 'lib/cloud_door/cloud_storage.rb', line 70
def show_account
@account
end
|
#show_configuration ⇒ Object
58
59
60
|
# File 'lib/cloud_door/cloud_storage.rb', line 58
def show_configuration
@config
end
|
#show_current_directory ⇒ Object
126
127
128
|
# File 'lib/cloud_door/cloud_storage.rb', line 126
def show_current_directory
@file_list.pull_current_dir
end
|
#show_files(file_name = nil) ⇒ Object
105
106
107
108
109
110
111
112
|
# File 'lib/cloud_door/cloud_storage.rb', line 105
def show_files(file_name = nil)
@file_name = file_name
raise SetIDException unless set_file_id
raise NotDirectoryException if file?(file_name)
pull_files
rescue => e
handle_exception(e)
end
|
#show_property(file_name) ⇒ Object
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# File 'lib/cloud_door/cloud_storage.rb', line 130
def show_property(file_name)
raise FileNameEmptyException if file_name.nil? || file_name.empty?
@file_name = file_name
raise SetIDException unless set_file_id
unless file_exist?(file_name)
raise FileNotExistsException, "'#{@file_name}' is not exists on cloud."
end
info = request_file
raise NoDataException if info.nil? || !info.is_a?(Hash)
format_property(info)
rescue => e
handle_exception(e)
end
|
#show_storage_name ⇒ Object
54
55
56
|
# File 'lib/cloud_door/cloud_storage.rb', line 54
def show_storage_name
@storage_name
end
|
#show_user ⇒ Object
99
100
101
102
103
|
# File 'lib/cloud_door/cloud_storage.rb', line 99
def show_user
request_user
rescue => e
handle_exception(e)
end
|
#update_account(accounts) ⇒ Object
74
75
76
|
# File 'lib/cloud_door/cloud_storage.rb', line 74
def update_account(accounts)
@account.update_yaml(accounts)
end
|
#update_configuration(configs) ⇒ Object
62
63
64
|
# File 'lib/cloud_door/cloud_storage.rb', line 62
def update_configuration(configs)
@config.update_yaml(configs)
end
|
#upload_file(file_name) ⇒ Object
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
# File 'lib/cloud_door/cloud_storage.rb', line 155
def upload_file(file_name)
@up_file_name = file_name
raise FileNameEmptyException if @up_file_name.nil? || @up_file_name.empty?
unless File.exist?(@up_file_name)
raise FileNotExistsException, "'#{@up_file_name}' is not exists on local."
end
@parent_id = pull_parent_id
up_file = assign_upload_file_name(file_name)
compress_file if File.directory?(@up_file_name)
request_upload(up_file)
update_file_list
File.delete(up_file) if File.directory?(@up_file_name)
true
rescue => e
unless e.is_a?(FileNameEmptyException)
File.delete(up_file) if File.directory?(@up_file_name)
end
handle_exception(e)
end
|