Sha256: 7c96153ee11423a2c0bf84b848ea3044b6ea5511a8cffc8dafe8c634ce30548a

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

require 'dataloaderb/process_definition'
require 'dataloaderb/support'
require 'erb'
require 'fileutils'
require 'tmpdir'
require 'yaml'

module Dataloaderb
  class ConfCreator
    attr_reader :processes

    # Create a new instance of a ConfCreator
    def initialize(yamls, opts = {})
      @processes = {}
      @opts      = opts
      build_process_definitions(yamls)
    end

    def build_process_definitions(yamls)
      yamls.each do |yaml|
        if @opts[:merge].nil? || @opts[:merge].empty?
          proc_def = Dataloaderb::ProcessDefinition.new(yaml)
        else
          proc_def = Dataloaderb::ProcessDefinition.new(yaml, @opts[:merge])
        end
        process_name = proc_def.id
        @processes[process_name] = proc_def
      end
    end

    # Return the text for an Apex Data Loader process-conf.xml file
    def to_xml
      # TODO: Don't unindent <%%
      erb = ERB.new File.new(File.expand_path('templates/process-conf.xml.erb',File.dirname(__FILE__))).readlines.join.gsub(/^\s+<%/, "<%"), nil, '<>'
      erb.result(get_binding)
    end

    private

      def get_binding
        binding
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dataloaderb-0.0.3 lib/dataloaderb/conf_creator.rb
dataloaderb-0.0.2 lib/dataloaderb/conf_creator.rb
dataloaderb-0.0.1 lib/dataloaderb/conf_creator.rb