Sha256: 9f189653d7f2bafc586404cc07c2bfed10c55b8f4fa40fd40e9d7d5b48332ab5
Contents?: true
Size: 1.3 KB
Versions: 7
Compression:
Stored size: 1.3 KB
Contents
# encoding: UTF-8 # frozen_string_literal: true # Requirements # ======================================================================= # Deps # ----------------------------------------------------------------------- require 'nrser' # Refinements # ======================================================================= require 'nrser/refinements/types' using NRSER::Types # Declarations # ======================================================================= module Thor::Base; end # Definitions # ======================================================================= # Mixin that provides "macros" for including common class options. # module Thor::Base::CommonClassOptions @@messages = Concurrent::Hash.new def self.define name, *args, &block @@messages[name.to_sym] = \ NRSER::Message.new :class_option, name, *args, &block end define :backtrace, desc: "Print stack traces with error messages", type: :boolean def common_class_options *names messages = Hamster::Hash.new @@messages names.map( &:to_sym ).each do |name| unless messages.key? name raise KeyError, "No common class option named #{ name }" end messages[name].send_to self end end end # module Thor::Base::CommonClassOptions
Version data entries
7 entries across 7 versions & 1 rubygems