Sha256: 9bf6d87889b196b38a2d1035f5fa60047267619df3b9a0066d6580b2859142d5

Contents?: true

Size: 883 Bytes

Versions: 14

Compression:

Stored size: 883 Bytes

Contents

require 'rbbt/util/simpleopt/parse'
require 'rbbt/util/simpleopt/get'
require 'rbbt/util/simpleopt/doc'
module SOPT

  class << self
    attr_accessor :original_argv
  end

  def self.setup(str)
    parts = str.split(/\n\n+/)

    summary = parts.shift unless parts.first =~ /^\s*\$-/
    synopsys = parts.shift if parts.first =~ /^\s*\$/

    description = []
    while parts.first and parts.first !~ /^\s*-/
      description << parts.shift
    end
    description = description * "\n\n"

    options = parts.collect{|part| part.split("\n").select{|l| l=~ /^\s*-/ }  }.flatten.compact * "\n"

    synopsys.sub!(/^\$\s+/,'') if synopsys

    SOPT.summary = summary.strip if summary
    SOPT.synopsys = synopsys.strip if synopsys
    SOPT.description = description.strip if description
    SOPT.parse options  if options

    SOPT.original_argv = ARGV.dup
    SOPT.consume
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rbbt-util-6.0.3 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.44.1 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.43.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.42.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.41.1 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.41.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.40.5 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.40.4 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.40.3 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.40.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.39.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.38.1 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.38.0 lib/rbbt/util/simpleopt/setup.rb
rbbt-util-5.37.16 lib/rbbt/util/simpleopt/setup.rb