Class: Embulk::PackageData

Inherits:
Object
  • Object
show all
Defined in:
lib/embulk/data/package_data.rb

Constant Summary collapse

JAVA_RESOURCE =
false
RESOURCE_URL =
resource_class.resource("/embulk/data")
FILE_BASE_PATH =
File.join(Embulk.home('lib'), 'embulk', 'data')

Instance Method Summary collapse

Constructor Details

#initialize(base_name, dest_dir, erb_binding = nil) ⇒ PackageData

Returns a new instance of PackageData.



14
15
16
17
18
19
# File 'lib/embulk/data/package_data.rb', line 14

def initialize(base_name, dest_dir, erb_binding=nil)
  require 'fileutils'
  @base_name = base_name
  @dest_dir = dest_dir
  @erb_binding = erb_binding
end

Instance Method Details

#content(src) ⇒ Object



29
30
31
# File 'lib/embulk/data/package_data.rb', line 29

def content(src)
  File.read(path(src))
end

#cp(src, dest_name) ⇒ Object



38
39
40
41
# File 'lib/embulk/data/package_data.rb', line 38

def cp(src, dest_name)
  path = dest_path_message(dest_name)
  FileUtils.cp path(src), path
end

#cp_erb(src, dest_name) ⇒ Object



43
44
45
46
# File 'lib/embulk/data/package_data.rb', line 43

def cp_erb(src, dest_name)
  path = dest_path_message(dest_name)
  File.open(path, "w") {|f| f.write erb(src) }
end

#dest_path(dest_name) ⇒ Object



48
49
50
# File 'lib/embulk/data/package_data.rb', line 48

def dest_path(dest_name)
  File.join(@dest_dir, *dest_name.split('/'))
end

#dest_path_message(dest_name) ⇒ Object



52
53
54
55
56
57
# File 'lib/embulk/data/package_data.rb', line 52

def dest_path_message(dest_name)
  path = dest_path(dest_name)
  puts "  Creating #{path}"
  FileUtils.mkdir_p File.dirname(path)
  path
end

#erb(src) ⇒ Object



33
34
35
36
# File 'lib/embulk/data/package_data.rb', line 33

def erb(src)
  require 'erb'
  ERB.new(content(src), nil, '%').result(@erb_binding)
end

#path(src) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/embulk/data/package_data.rb', line 21

def path(src)
  if JAVA_RESOURCE
    "#{RESOURCE_URL}/#{@base_name}/#{src}"
  else
    File.join(FILE_BASE_PATH, @base_name, src)
  end
end

#set_executable(dest_name) ⇒ Object



59
60
61
# File 'lib/embulk/data/package_data.rb', line 59

def set_executable(dest_name)
  File.chmod(0755, dest_path(dest_name))
end