Sha256: c9a587b1c6a839fbb103a68f1d0239ffa6dee7d24c26dd1e86fe2055be0ac090

Contents?: true

Size: 686 Bytes

Versions: 2

Compression:

Stored size: 686 Bytes

Contents

module Memo
  class Option
    attr_reader :namespace

    def initialize(args)
      @raw_args = args.to_a

      case @raw_args
      in [*, "-n", namespace, *]
        @namespace = namespace
        @raw_args.delete("-n")
        @raw_args.delete(namespace)
      else
      end

      @args = @raw_args.select do |s|
        !s.start_with? "-"
      end
    end

    def [](index)
      @args[index]
    end

    def dir?
      include_any? "-dir", "-d"
    end

    def all?
      include_any? "-all", "-a"
    end

    def copy?
      include_any? "-copy", "-c"
    end

    private

    def include_any?(*args)
      args.map { |a| @raw_args.include?(a) }.any?
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ememo-0.2.1 lib/memo/cli/arg/option.rb
ememo-0.1.8 lib/memo/cli/arg/option.rb