Sha256: 112d75b95684de5bca5316e93af97e092d244d2dd7a3c54150c78c6027e096ba

Contents?: true

Size: 901 Bytes

Versions: 5

Compression:

Stored size: 901 Bytes

Contents

# encoding: utf-8

module Nake
  module ArgvParsingMixin
    def extract!
      self.inject(Hash.new) do |options, argument|
        case argument
        when /^--no-([^=]+)$/ # --no-git-repository
          options[$1.gsub("-", "_").to_sym] = false
          self.delete(argument)
        when /^--([^=]+)$/    # --git-repository
          options[$1.gsub("-", "_").to_sym] = true
          self.delete(argument)
        when /^--([^=]+)=([^,]+)$/ # --controller=post
          key, value = $1, $2
          options[key.gsub("-", "_").to_sym] = value.dup
          self.delete(argument)
        when /^--([^=]+)=(.+)$/    # --controllers=posts,comments
          key, value = $1, $2
          options[key.gsub("-", "_").to_sym] = value.split(",")
          self.delete(argument)
        else
          # just extract options and ignore others
        end
        options
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
nake-0.0.3 lib/nake/argv.rb
nake-0.0.3.pre lib/nake/argv.rb
nake-0.0.2 lib/nake/argv.rb
nake-0.0.2.pre lib/nake/argv.rb
nake-0.0.1 lib/nake/argv.rb