class Cl::Opt
Constants
- OPT
- OPTS
- TYPES
Attributes
long[R]
short[R]
Public Class Methods
new(strs, *)
click to toggle source
Calls superclass method
# File lib/cl/opt.rb, line 24 def initialize(strs, *) super @short, @long = Validator.new(strs, opts).apply end
Public Instance Methods
aliases()
click to toggle source
# File lib/cl/opt.rb, line 71 def aliases Array(opts[:alias]) end
aliases?()
click to toggle source
# File lib/cl/opt.rb, line 67 def aliases? !!opts[:alias] end
array?()
click to toggle source
# File lib/cl/opt.rb, line 63 def array? type == :array end
assign(opts, type, _, value)
click to toggle source
# File lib/cl/opt.rb, line 217 def assign(opts, type, _, value) [name, *aliases].each do |name| if array? opts[name] ||= [] opts[name] << value else opts[name] = value end end end
block()
click to toggle source
Calls superclass method
# File lib/cl/opt.rb, line 212 def block # raise if no block was given, and the option's name cannot be inferred super || method(:assign) end
default()
click to toggle source
# File lib/cl/opt.rb, line 101 def default opts[:default] end
default?()
click to toggle source
# File lib/cl/opt.rb, line 97 def default? opts.key?(:default) end
define(const)
click to toggle source
# File lib/cl/opt.rb, line 29 def define(const) return unless __key__ = name const.send :include, Module.new { define_method (__key__) { opts[__key__] } define_method (:"#{__key__}?") { !!opts[__key__] } } end
deprecated()
click to toggle source
# File lib/cl/opt.rb, line 85 def deprecated # If it's a string then it's a deprecation message and the option itself # is considered deprecated. If it's a symbol it refers to a deprecated # alias, and the option's name is the deprecation message. return [name, opts[:deprecated]] unless opts[:deprecated].is_a?(Symbol) opts[:deprecated] ? [opts[:deprecated], name] : [] end
deprecated?(name = nil)
click to toggle source
# File lib/cl/opt.rb, line 79 def deprecated?(name = nil) return !!opts[:deprecated] if name.nil? names = [name.to_s.gsub('_', '-').to_sym, name.to_s.gsub('-', '_').to_sym] deprecated? && names.include?(deprecated.first) end
description()
click to toggle source
# File lib/cl/opt.rb, line 75 def description opts[:description] end
downcase?()
click to toggle source
# File lib/cl/opt.rb, line 93 def downcase? !!opts[:downcase] end
enum()
click to toggle source
# File lib/cl/opt.rb, line 109 def enum Array(opts[:enum]) end
enum?()
click to toggle source
# File lib/cl/opt.rb, line 105 def enum? !!opts[:enum] end
example()
click to toggle source
# File lib/cl/opt.rb, line 127 def example opts[:example] end
example?()
click to toggle source
# File lib/cl/opt.rb, line 123 def example? !!opts[:example] end
flag?()
click to toggle source
# File lib/cl/opt.rb, line 55 def flag? type == :flag end
format()
click to toggle source
# File lib/cl/opt.rb, line 135 def format format_regex(opts[:format]) end
format?()
click to toggle source
# File lib/cl/opt.rb, line 131 def format? !!opts[:format] end
formatted?(value)
click to toggle source
# File lib/cl/opt.rb, line 139 def formatted?(value) return value.all? { |value| formatted?(value) } if value.is_a?(Array) opts[:format] =~ value end
help?()
click to toggle source
# File lib/cl/opt.rb, line 51 def help? name == :help end
infer_type()
click to toggle source
# File lib/cl/opt.rb, line 47 def infer_type strs.any? { |str| str.split(' ').size > 1 } ? :string : :flag end
int?()
click to toggle source
# File lib/cl/opt.rb, line 59 def int? type == :int || type == :integer end
internal?()
click to toggle source
# File lib/cl/opt.rb, line 144 def internal? !!opts[:internal] end
known?(value)
click to toggle source
# File lib/cl/opt.rb, line 113 def known?(value) return value.all? { |value| known?(value) } if value.is_a?(Array) enum.any? { |obj| obj.is_a?(Regexp) ? obj =~ value.to_s : obj == value } end
long?(str)
click to toggle source
# File lib/cl/opt.rb, line 228 def long?(str) str.start_with?('--') end
max()
click to toggle source
# File lib/cl/opt.rb, line 160 def max opts[:max] end
max?()
click to toggle source
# File lib/cl/opt.rb, line 156 def max? int? && !!opts[:max] end
min()
click to toggle source
# File lib/cl/opt.rb, line 152 def min opts[:min] end
min?()
click to toggle source
# File lib/cl/opt.rb, line 148 def min? int? && !!opts[:min] end
name()
click to toggle source
# File lib/cl/opt.rb, line 37 def name return @name if instance_variable_defined?(:@name) name = long.split(' ').first.match(OPT)[1] if long @name = name.sub('-', '_').to_sym if name end
negate()
click to toggle source
# File lib/cl/opt.rb, line 168 def negate ['no'] + Array(opts[:negate]) if flag? end
negate?()
click to toggle source
# File lib/cl/opt.rb, line 164 def negate? !!negate end
note()
click to toggle source
# File lib/cl/opt.rb, line 176 def note opts[:note] end
note?()
click to toggle source
# File lib/cl/opt.rb, line 172 def note? !!opts[:note] end
required?()
click to toggle source
# File lib/cl/opt.rb, line 180 def required? !!opts[:required] end
requires()
click to toggle source
# File lib/cl/opt.rb, line 188 def requires Array(opts[:requires]) end
requires?()
click to toggle source
# File lib/cl/opt.rb, line 184 def requires? !!opts[:requires] end
secret?()
click to toggle source
# File lib/cl/opt.rb, line 192 def secret? !!opts[:secret] end
see()
click to toggle source
# File lib/cl/opt.rb, line 200 def see opts[:see] end
see?()
click to toggle source
# File lib/cl/opt.rb, line 196 def see? !!opts[:see] end
separator()
click to toggle source
# File lib/cl/opt.rb, line 204 def separator opts[:sep] end
type()
click to toggle source
# File lib/cl/opt.rb, line 43 def type @type ||= TYPES[opts[:type]] || opts[:type] || infer_type end
unknown(value)
click to toggle source
# File lib/cl/opt.rb, line 118 def unknown(value) return value.reject { |value| known?(value) } if value.is_a?(Array) known?(value) ? [] : Array(value) end
upcase?()
click to toggle source
# File lib/cl/opt.rb, line 208 def upcase? !!opts[:upcase] end