class Sapristi::Sapristi

Attributes

dry[R]
verbose[R]

Public Class Methods

new(configuration_loader: ConfigurationLoader.new, definition_processor: DefinitionProcessor.new) click to toggle source
# File lib/sapristi/sapristi.rb, line 5
def initialize(configuration_loader: ConfigurationLoader.new, definition_processor: DefinitionProcessor.new)
  @configuration_loader = configuration_loader
  @definition_processor = definition_processor
  @dry = false
  @verbose = false
  @group = nil
end

Private Class Methods

user_default_configuration_file() click to toggle source
# File lib/sapristi/sapristi.rb, line 65
def self.user_default_configuration_file
  File.join Dir.home, '.sapristi.csv'
end

Public Instance Methods

dry!() click to toggle source
# File lib/sapristi/sapristi.rb, line 30
def dry!
  @dry = true
  logger = ::Sapristi.logger
  logger.level = :info if logger.level > Logger::INFO
end
filter!(group) click to toggle source
# File lib/sapristi/sapristi.rb, line 40
def filter!(group)
  @group = group
end
run(conf_file = Sapristi.user_default_configuration_file) click to toggle source
# File lib/sapristi/sapristi.rb, line 13
def run(conf_file = Sapristi.user_default_configuration_file)
  ::Sapristi.logger.info "Sapristi: Processing: #{conf_file}"
  check_user_configuration(conf_file)

  definitions = @configuration_loader.load(conf_file)
  definitions = definitions.filter { |definition| definition.group.eql? @group } if @group

  process definitions
end
verbose!() click to toggle source
# File lib/sapristi/sapristi.rb, line 25
def verbose!
  @verbose = true
  ::Sapristi.logger.level = :info
end
wait_time!(wait_time) click to toggle source
# File lib/sapristi/sapristi.rb, line 36
def wait_time!(wait_time)
  @definition_processor.wait_time = wait_time
end

Private Instance Methods

check_user_configuration(conf_file) click to toggle source
# File lib/sapristi/sapristi.rb, line 59
def check_user_configuration(conf_file)
  return unless conf_file.eql?(Sapristi.user_default_configuration_file) && !File.exist?(conf_file)

  @configuration_loader.create_empty_configuration conf_file
end
process(definitions) click to toggle source
# File lib/sapristi/sapristi.rb, line 46
def process(definitions)
  definitions.each_with_index do |definition, index|
    process_line(definition, index)
  rescue Error => e
    raise Error, "#{e.message}, line=#{index}"
  end
end
process_line(definition, index) click to toggle source
# File lib/sapristi/sapristi.rb, line 54
def process_line(definition, index)
  ::Sapristi.logger.info "Process line #{index}: #{definition}"
  @definition_processor.process_definition(definition) unless dry
end