Sha256: 42d3124384a3f48b8ce9fed5e6dc23d2961dbd0a7bb6fbb6c5b56d056e2ff553

Contents?: true

Size: 1.47 KB

Versions: 45

Compression:

Stored size: 1.47 KB

Contents

module Embulk

  class PackageData
    if __FILE__ =~ /^classpath:/ || __FILE__.include?('!/')
      # data is in embulk-core jar
      resource_class = org.embulk.command.Runner.java_class
      JAVA_RESOURCE = true
      RESOURCE_URL = resource_class.resource("/embulk/data")
    else
      JAVA_RESOURCE = false
      FILE_BASE_PATH = File.join(Embulk.home('lib'), 'embulk', 'data')
    end

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

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

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

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

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

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

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

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

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

end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
embulk-0.6.27 lib/embulk/data/package_data.rb
embulk-0.6.26 lib/embulk/data/package_data.rb
embulk-0.6.25 lib/embulk/data/package_data.rb
embulk-0.6.24 lib/embulk/data/package_data.rb
embulk-0.6.23 lib/embulk/data/package_data.rb
embulk-0.6.22 lib/embulk/data/package_data.rb
embulk-0.6.21 lib/embulk/data/package_data.rb
embulk-0.6.20 lib/embulk/data/package_data.rb
embulk-0.6.19 lib/embulk/data/package_data.rb
embulk-0.6.18 lib/embulk/data/package_data.rb
embulk-0.6.17 lib/embulk/data/package_data.rb
embulk-0.6.16 lib/embulk/data/package_data.rb
embulk-0.6.15 lib/embulk/data/package_data.rb
embulk-0.6.14 lib/embulk/data/package_data.rb
embulk-0.6.13 lib/embulk/data/package_data.rb
embulk-0.6.12 lib/embulk/data/package_data.rb
embulk-0.6.11 lib/embulk/data/package_data.rb
embulk-0.6.10 lib/embulk/data/package_data.rb
embulk-0.6.9 lib/embulk/data/package_data.rb
embulk-0.6.8 lib/embulk/data/package_data.rb