Sha256: 0a70e80cc295ee1ffd8ba70533bd59868e7169c39671e4bc70109447a7286882
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true module Theme module Conversions class BaseGlob class << self def register(parser) parser.accept(self) { |_val| convert(parser) } end def convert(parser) argv = parser.default_argv option_index = argv.index { |v| options.include?(v) } return [] if option_index.nil? start_index = option_index + 1 option_by_key = options_map(parser) values = [] argv[start_index..-1].each do |value| return values unless option_by_key[value].nil? values << value end values end def options raise "`#{self.class.name}#options` must be defined" end private def options_map(parser) map = {} parser.top.list.each do |option| map[option.short.first] = option map[option.long.first] = option end map end def parameter?(value) value.start_with?("-") end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems