class Object

Public Instance Methods

get_section(content, level, section) click to toggle source
# File bin/jocasta, line 37
def get_section(content, level, section)
  result = nil
  found = false
  content.split("\n").each do |line|
    if /^\#{#{level}}\s*#{section}\s*$/ =~ line
      result = ''
      found = true
    else
      next unless found

      break if /^\#{1,#{level}}\s*\w/ =~ line

      result += "\n" + line
    end
  end
  result
end
parse_options(paired_args) click to toggle source
# File bin/jocasta, line 6
def parse_options(paired_args)
  options = { args: [] }
  index = 0
  while index < ARGV.length
    arg = ARGV[index]

    paired_key = paired_args[arg]
    if paired_key
      if index >= ARGV.length - 1
        puts "Unable to find a value for the arg: '#{arg}'"
        exit 1
      end
      options[paired_key] = ARGV[index + 1]
      index += 1
    elsif /--.+/ =~ arg
      puts 'unknown option: ' + arg
    else
      options[:args].push arg
    end
    index += 1
  end
  options
end
require_args(args, count) click to toggle source
# File bin/jocasta, line 30
def require_args(args, count)
  return unless args.length != count

  puts 'usage: jocasta [input] [output] [level] [section] [...options]'
  exit 1
end