def input(argument, properties)
raise_code(:PLMC22, "Cannot determine what entity input '%{entity}' belongs to", :error, :entity => @current_entity) unless @current_entity
entity = @current_entity
[:prompt, :description, :type].each do |arg|
raise_code(:PLMC23, "Input needs a :%{property} property", :debug, :property => arg) 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