Class: Avm::EacRedmineBase0::DataUnit
Constant Summary
collapse
- EXTENSION =
'.tar'
Instance Attribute Summary
#instance
Instance Method Summary
collapse
#initialize
Methods inherited from Data::Unit
#dump, #dump_to_directory, #extension, #load, #load_from_directory, #name
Instance Method Details
#do_dump(data_path) ⇒ Object
15
16
17
18
19
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 15
def do_dump(data_path)
::File.open(data_path, 'wb') do |file|
file << URI.parse(export_url).read
end
end
|
#do_load(data_path) ⇒ Object
21
22
23
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 21
def do_load(data_path)
do_load_by_web(data_path) || do_load_by_rake(data_path) || raise('Failed to load')
end
|
#do_load_by_rake(data_path) ⇒ Object
35
36
37
38
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 35
def do_load_by_rake(data_path)
instance.bundle('exec', 'rake', "redmine_with_git:load:all[#{data_path}]").system
true
end
|
#do_load_by_web(data_path) ⇒ Object
25
26
27
28
29
30
31
32
33
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 25
def do_load_by_web(data_path)
c = Curl::Easy.new(import_url)
c.multipart_form_post = true
c.http_post(Curl::PostField.file('redmine_with_git_tableless_load[path]', data_path))
c.perform
true
rescue Curl::Err::ConnectionFailedError
false
end
|
#export_url ⇒ Object
40
41
42
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 40
def export_url
url('/backup/export')
end
|
#import_url ⇒ Object
44
45
46
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 44
def import_url
url('/backup/import.json')
end
|
#url(path) ⇒ Object
48
49
50
51
52
|
# File 'lib/avm/eac_redmine_base0/data_unit.rb', line 48
def url(path)
uri = ::Addressable::URI.parse(instance.read_entry('web.url')) + path
uri.query_values = { key: instance.read_entry('admin.api_key') }
uri.to_s
end
|