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