add class-level prompt inputs to SubsetMethods
Reported by bahuvrihi | September 13th, 2008 @ 09:04 AM | in Tap-1.0.0
This is a sketch of the required code (ie old cruft lying around):
# Passes conditions to subclass
def inherited(subclass) # :nodoc:
super
subclass_conditions = conditions.inject({}) do |memo, (key, value)|
memo.update(key => (value.dup rescue value))
end
subclass.instance_variable_set(:@conditions, subclass_conditions)
subclass.instance_variable_set(:@run_test_suite, nil)
subclass.instance_variable_set(:@skip_messages, [])
subclass_inputs = prompt_inputs.inject({}) do |memo, (key, value)|
memo.update(key => (value.dup rescue value))
end
subclass.instance_variable_set("@prompt_inputs", subclass_inputs)
end
# Experimental -- The idea is to provide a way to prompt once for inputs
# that get used multiple times in a test. Perhaps create accessors
# automatically?
def prompt_inputs
@prompt_inputs ||= {}
end
def require_inputs(*keys, &block)
if run_subset?("PROMPT")
puts "\n#{name} requires inputs -- Enter values or 'skip'."
argv = ARGV.dup
begin
ARGV.clear
keys.collect do |key|
print "#{key}: "
value = gets.strip
if value =~ /skip/i
skip_test "missing inputs"
break
end
prompt_inputs[key] = value
end
ensure
ARGV.clear
ARGV.concat(argv)
end
else
skip_test "prompt test"
end
end
No comments found
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
A framework for making configurable, file-based tasks and workflows.