class Cloaca::CLI

Public Instance Methods

add_fixed_value_column() click to toggle source
# File lib/cloaca/cli.rb, line 33
def add_fixed_value_column
  Operations::AddFixedValueColumn.new(parse_options).run!
end
add_integer_index_column() click to toggle source
# File lib/cloaca/cli.rb, line 12
def add_integer_index_column
  assert_integer(:"index-delta")
  assert_integer(:"index-seed")
  Operations::AddNumericIndexColumn.new(parse_options).run!
end
add_numeric_index_column() click to toggle source
# File lib/cloaca/cli.rb, line 24
def add_numeric_index_column
  Operations::AddNumericIndexColumn.new(parse_options).run!
end
change_col_delimiter() click to toggle source
# File lib/cloaca/cli.rb, line 41
def change_col_delimiter
  Operations::ChangeColumnDelimiter.new(parse_options).run!
end
check_headers_unique() click to toggle source
# File lib/cloaca/cli.rb, line 50
def check_headers_unique
  Operations::CheckRowValuesUnique.new(parse_options).run!
end
extract_unique_col_values() click to toggle source
# File lib/cloaca/cli.rb, line 59
def extract_unique_col_values
  assert_integer(:"row-offset")

  Operations::ExtractUniqueColumnValues.new(parse_options).run!
end
generate_int() click to toggle source
# File lib/cloaca/cli.rb, line 71
def generate_int
  assert_integer(:min)
  assert_integer(:max)
  assert_less_than(:min, :max)

  Operations::GenerateRandomIntegers.new(parse_options).run!
end
remove_col_quotes() click to toggle source
# File lib/cloaca/cli.rb, line 91
def remove_col_quotes
  Operations::RemoveColumnQuotes.new(parse_options).run!
end
remove_column() click to toggle source
# File lib/cloaca/cli.rb, line 83
def remove_column
  Operations::RemoveColumn.new(parse_options).run!
end
remove_header_row() click to toggle source
# File lib/cloaca/cli.rb, line 98
def remove_header_row
  assert_greater_than_zero(:count)
  Operations::RemoveSequentialRows.new(parse_options).run!
end

Private Instance Methods

assert_greater_than_zero(key) click to toggle source
# File lib/cloaca/cli.rb, line 111
def assert_greater_than_zero(key)
  if options[key] < 0
    raise(Thor::MalformattedArgumentError.new("Expected #{jet} to be greater than 0 ; got \"#{options[key]}\" which is not > 0"))
  end
end
assert_integer(key) click to toggle source
# File lib/cloaca/cli.rb, line 105
def assert_integer(key)
  if options[key] != options[key].to_i
    raise(Thor::MalformattedArgumentError.new("Expected integer value for '--#{key}'; got \"#{options[key]}\""))
  end
end
assert_less_than(a, b) click to toggle source
# File lib/cloaca/cli.rb, line 117
def assert_less_than(a, b)
  if options[a] > options[b]
    raise(Thor::MalformattedArgumentError.new("Expected #{a} to be less than or equal to #{b} ; got \"#{options[a]}\" which is not <= \"#{options[b]}\""))
  end
end
parse_options() click to toggle source
# File lib/cloaca/cli.rb, line 123
def parse_options
  {
    case_sensitive: options[:"case-sensitive"],
    column_delimiter: options[:"col-delim"],
    column_header: options[:"col-header"],
    column_value: options[:"col-value"],
    count: options[:count],
    delay_in_ms: options[:delay_in_ms],
    ending_row_offset: options[:"ending-row-offset"] || options[:count],
    index_delta: options[:"index-delta"],
    index_header: options[:"index-header"],
    index_or_value: options[:"index-or-value"],
    index_seed: options[:"index-seed"],
    input: $stdin,
    max: options[:max],
    min: options[:min],
    new_column_delimiter: options[:"new-col-delim"],
    old_column_delimiter: options[:"old-col-delim"],
    row_offset: options[:"row-offset"],
    starting_row_offset: options[:"starting-row-offset"] || 0,
    output: $stdout,
  }
end