class Ipfs::Commands::AddDir
Public Class Methods
call(client, dir)
click to toggle source
# File lib/ipfs-http-client-rb/commands/add_dir.rb, line 6 def self.call(client, dir) root = File.dirname dir form_files = [] form_files << HTTP::FormData::Part.new( "", content_type: 'application/x-directory', filename: File.basename(dir) ) Dir["#{dir}/**/*"].each do |file| filename = file[(root.size + 1)..file.size] if File.directory?(file) form_files << HTTP::FormData::Part.new( "", content_type: 'application/x-directory', filename: filename ) else form_files << HTTP::FormData::File.new(file, filename: filename) end end response = request(client, "/add?recursive=true", {form: {file: form_files }}) response.body.to_s.split("\n").map { |s| JSON.parse s } end