module Cult::Transferable

Public Class Methods

included(cls) click to toggle source
# File lib/cult/transferable.rb, line 10
def self.included(cls)
  cls.extend(ClassMethods)
end

Public Instance Methods

binary?() click to toggle source
# File lib/cult/transferable.rb, line 30
def binary?
  !! File.read(path, 512).match(/[\x00-\x08]/)
end
collection_name() click to toggle source
# File lib/cult/transferable.rb, line 15
def collection_name
  self.class.collection_name
end
contents(project, role, node, pwd: nil) click to toggle source
# File lib/cult/transferable.rb, line 35
def contents(project, role, node, pwd: nil)
  if binary?
    File.read(path)
  else
    erb = Template.new(project: project, pwd: pwd, role: role, node: node)
    erb.process(File.read(path), filename: path)
  end
end
file_mode() click to toggle source
# File lib/cult/transferable.rb, line 53
def file_mode
  File.stat(path).mode & 0777
end
name() click to toggle source
# File lib/cult/transferable.rb, line 45
def name
  prefix = File.join(role.path, collection_name) + "/"
  if path.start_with?(prefix)
    path[prefix.size .. -1]
  end
end
remote_path() click to toggle source
# File lib/cult/transferable.rb, line 20
def remote_path
  File.join(role.remote_path, role_relative_path)
end
role_relative_path() click to toggle source
# File lib/cult/transferable.rb, line 25
def role_relative_path
  File.join(collection_name, relative_path)
end