Sha256: 1a7a6708a58d79cf54464d4bc0a422b7f7a67d20b8095796788c26e0153da530
Contents?: true
Size: 898 Bytes
Versions: 108
Compression:
Stored size: 898 Bytes
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' module EacCli class Parser require_sub __FILE__ enable_simple_cache common_constructor :definition, :argv private def parsed_uncached raise 'Definition has no alternatives' if alternatives.empty? raise first_error unless alternatives.select(&:success?).any? alternatives_parsed(true).merge(alternatives_parsed(false)) end def alternatives_parsed(error) alternatives.select { |a| error == a.error? }.map(&:parsed).reverse .inject(::EacRubyUtils::Struct.new) { |a, e| a.merge(e) } end def alternatives_uncached definition.alternatives .map { |alternative| ::EacCli::Parser::Alternative.new(alternative, argv) } end def first_error_uncached alternatives.lazy.select(&:error?).map(&:error).first end end end
Version data entries
108 entries across 108 versions & 3 rubygems