def input(argument, properties)
raise "Cannot figure out what entity input #{argument} belongs to" unless @current_entity
entity = @current_entity
[:prompt, :description, :type].each do |arg|
raise "Input needs a :#{arg} property" unless properties.include?(arg)
end
@entities[entity][:input][argument] = {:prompt => properties[:prompt],
:description => properties[:description],
:type => properties[:type],
:default => properties[:default],
:optional => properties[:optional]}
case properties[:type]
when :string
raise "Input type :string needs a :validation argument" unless properties.include?(:validation)
raise "Input type :string needs a :maxlength argument" unless properties.include?(:maxlength)
@entities[entity][:input][argument][:validation] = properties[:validation]
@entities[entity][:input][argument][:maxlength] = properties[:maxlength]
when :list
raise "Input type :list needs a :list argument" unless properties.include?(:list)
@entities[entity][:input][argument][:list] = properties[:list]
end
end