module Cult::CLI::CommandExtensions
Attributes
argument_spec[RW]
Public Instance Methods
block()
click to toggle source
This function returns a wrapped version of the block passed to `run`
Calls superclass method
# File lib/cult/cli/cri_extensions.rb, line 63 def block lambda do |opts, args, cmd| if project_required? && Cult.project.nil? fail CLIError, "command '#{cmd.name}' requires a Cult project" end check_argument_spec!(args, argument_spec, cmd) if argument_spec super.call(opts, args, cmd) end end
check_argument_spec!(args, range, cmd)
click to toggle source
# File lib/cult/cli/cri_extensions.rb, line 75 def check_argument_spec!(args, range, cmd) range = (0..range) if range == Float::INFINITY range = (range..range) if range.is_a?(Integer) unless range.cover?(args.size) msg = case when range.size == 1 && range.begin == 0 "accepts no arguments" when range.size == 1 && range.begin == 1 "requires exactly one argument" when range.begin == range.end "requires exactly #{range.begin} arguments" else if range.end == Float::INFINITY words =%w(zero one two three) if range.begin < words.size "requires #{words[range.begin]} or more arguments" else "requires #{range.begin}+ arguments" end else "accepts #{range} arguments" end end fail CLIError, "command '#{cmd.name}' #{msg} (usage: #{cmd.usage})" end end
project_required=(v)
click to toggle source
# File lib/cult/cli/cri_extensions.rb, line 54 def project_required=(v) @project_required = v end
project_required?()
click to toggle source
# File lib/cult/cli/cri_extensions.rb, line 49 def project_required? defined?(@project_required) ? @project_required : true end