Class: Uricp::Strategy::LocalLink

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/uricp/strategy/local_link.rb

Constant Summary

Constants included from Common

Common::PIPE_URI

Instance Attribute Summary

Attributes included from Common

#proposed_options

Attributes included from CurlPrimitives

#options

Instance Method Summary collapse

Methods included from Common

#all_local_files?, #always_write_sparse?, #compression_required?, #conversion_required?, #encoding, #file_source?, #format_change?, #get_temp_filename, #initialize, #lz4?, #lz4_source?, #proposed_path, #qcow2?, #raw_target?, #segmented?, #sequence_complete?, #supported_source?, #temp_uri, #unsupported_transfer

Methods included from CurlPrimitives

#authentication, #curl_command, #curl_download_to_pipe, #curl_manifest, #curl_upload_from, #from, #from=, #http_authentication?, #to, #to=

Instance Method Details

#appropriate?Boolean

Returns:

  • (Boolean)


7
8
9
10
11
# File 'lib/uricp/strategy/local_link.rb', line 7

def appropriate?
  return proposal if all_local_files? && !format_change? && linkable?
  debug "#{self.class.name}: not appropriate"
  false
end

#commandObject



13
14
15
# File 'lib/uricp/strategy/local_link.rb', line 13

def command
  "ln -fT #{from.path} #{to.path};"
end

#linkable?Boolean

Returns:

  • (Boolean)


23
24
25
26
# File 'lib/uricp/strategy/local_link.rb', line 23

def linkable?
  File.stat(File.dirname(from.path)).dev == File.stat(File.dirname(to.path)).dev &&
  (!File.exist?(to.path) || File.file?(to.path))
end

#proposalObject



17
18
19
20
21
# File 'lib/uricp/strategy/local_link.rb', line 17

def proposal
  @proposed_options = options.dup
  @proposed_options['from_uri'] = @proposed_options['to_uri']
  self
end