Method: Cdo#initialize

Defined in:
lib/cdo.rb

#initialize(cdo: 'cdo', returnCdf: false, returnFalseOnError: false, forceOutput: true, env: {}, tempdir: Dir.tmpdir, logging: false, logFile: StringIO.new, debug: false, returnNilOnError: false) ⇒ Cdo

Returns a new instance of Cdo.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cdo.rb', line 40

def initialize(cdo: 'cdo',
               returnCdf: false,
               returnFalseOnError: false,
               forceOutput: true,
               env: {},
               tempdir: Dir.tmpdir,
               logging: false,
               logFile: StringIO.new,
               debug: false,
               returnNilOnError: false)

  # setup path to cdo executable
  @cdo = ENV.has_key?('CDO') ? ENV['CDO'] : cdo

  @operators              = getOperators(@cdo)
  @noOutputOperators      = @operators.select {|op,io| 0 == io}.keys

  @returnCdf              = returnCdf
  @forceOutput            = forceOutput
  @env                    = env
  @debug                  = ENV.has_key?('DEBUG') ? true : debug
  @returnNilOnError       = returnNilOnError

  @returnFalseOnError     = returnFalseOnError

  @tempStore              = CdoTempfileStore.new(tempdir)
  @logging                = logging
  @logFile                = logFile
  @logger                 = Logger.new(@logFile,'a')
  @logger.level           = Logger::INFO

  @config                 = getFeatures

  # create methods to descibe what can be done with the binary
  @config.each {|k,v|
    self.class.send :define_method, k.tr('-','_') do
      v
    end
  }
end