class Embulk::PackageData

Public Class Methods

new(base_name, dest_dir, erb_binding=nil) click to toggle source
# File lib/embulk/data/package_data.rb, line 4
def initialize(base_name, dest_dir, erb_binding=nil)
  require 'fileutils'
  @base_name = base_name
  @dest_dir = dest_dir
  @erb_binding = erb_binding
end

Public Instance Methods

bincontent(src) click to toggle source
# File lib/embulk/data/package_data.rb, line 19
def bincontent(src)
  File.binread(path(src))
end
content(src) click to toggle source
# File lib/embulk/data/package_data.rb, line 15
def content(src)
  File.read(path(src))
end
cp(src, dest_name) click to toggle source
# File lib/embulk/data/package_data.rb, line 28
def cp(src, dest_name)
  dest = dest_path_message(dest_name)
  File.open(dest, "wb") do |dst_io|
    File.open(path(src), "rb") do |src_io|
      FileUtils.copy_stream src_io, dst_io
    end
  end
end
cp_erb(src, dest_name) click to toggle source
# File lib/embulk/data/package_data.rb, line 37
def cp_erb(src, dest_name)
  dest = dest_path_message(dest_name)
  File.open(dest, "wb") {|f| f.write erb(src) }
end
dest_path(dest_name) click to toggle source
# File lib/embulk/data/package_data.rb, line 42
def dest_path(dest_name)
  File.join(@dest_dir, *dest_name.split('/'))
end
dest_path_message(dest_name) click to toggle source
# File lib/embulk/data/package_data.rb, line 46
def dest_path_message(dest_name)
  path = dest_path(dest_name)
  puts "  Creating #{path}"
  FileUtils.mkdir_p File.dirname(path)
  path
end
erb(src) click to toggle source
# File lib/embulk/data/package_data.rb, line 23
def erb(src)
  require 'erb'
  ERB.new(content(src), nil, '%').result(@erb_binding)
end
path(src) click to toggle source
# File lib/embulk/data/package_data.rb, line 11
def path(src)
  Embulk.lib_path("embulk/data/#{@base_name}/#{src}")
end
set_executable(dest_name) click to toggle source
# File lib/embulk/data/package_data.rb, line 53
def set_executable(dest_name)
  dest = dest_path(dest_name)
  File.chmod(File.stat(dest).mode | 0111, dest)
end