Parent

Yapra::Config

Config Examples

Config file for yapra.

Format 1: Pragger like.

A simplest. You can run one pipeline without global config.

- module: Module:name
  config:
    a: 3
- module: Module:name2
  config:
    a: b
- module: Module:name3
  config:
    a: 88

Format 2: Python habu like.

You can run a lot of pipelines with global config.

global:
  log:
    out: stderr
    level: warn

pipeline:
  pipeline1:
    - module: Module:name
      config:
        a: 3
    - module: Module:name2
      config:
        a: b

  pipeline2:
    - module: Module:name
      config:
        a: 3
    - module: Module:name2
      config:
        a: b

Format 3: Mixed type.

You can run sigle pipeline with global config.

global:
  log:
    out: stderr
    level: warn

pipeline:
  - module: Module:name
    config:
      a: 3
  - module: Module:name2
    config:
      a: b

Attributes

env[R]
pipeline_commands[R]

Public Class Methods

new(config={}) click to toggle source
# File lib/yapra/config.rb, line 66
def initialize config={}
  if config.kind_of?(Hash)
    @env = config['global'] || {}
    if config['pipeline']
      if config['pipeline'].kind_of?(Hash)
        @pipeline_commands = config['pipeline']
      elsif config['pipeline'].kind_of?(Array)
        @pipeline_commands = { 'default' => config['pipeline'] }
      end
    end
    raise 'config["global"]["pipeline"] is invalid!' unless @pipeline_commands
  elsif config.kind_of?(Array)
    @env        = {}
    @pipeline_commands  = { 'default' => config }
  else
    raise 'config file is invalid!'
  end
end

Public Instance Methods

create_logger() click to toggle source
# File lib/yapra/config.rb, line 85
def create_logger
  logger = nil
  if env['log'] && env['log']['out']
    if env['log']['out'].index('file://')
      logger = Logger.new(URI.parse(env['log']['out']).path)
    else
      logger = Logger.new(Yapra::Inflector.constantize(env['log']['out'].upcase))
    end
  else
    logger = Logger.new(STDOUT)
  end
  
  if env['log'] && env['log']['level']
    logger.level = Yapra::Inflector.constantize("Logger::#{env['log']['level'].upcase}")
  else
    logger.level = Logger::WARN
  end
  logger
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.