Используя Ваш исходный код, в методе можно также использовать отражение для тестирования этого, T является перечислением:
public static class EnumExtension
{
public static bool IsSet<T>( this T input, T matchTo )
{
if (!typeof(T).IsEnum)
{
throw new ArgumentException("Must be an enum", "input");
}
return (input & matchTo) != 0;
}
}
I только что обнаружил в превосходной документации по API Sinatra, что Sinatra :: Request является подклассом Rack :: Request. Объект запроса, доступный обработчикам Sinatra, наследуется с помощью метода POST, который возвращает хэш отправленных полей формы.
request.POST.each { |k,v| puts "#{k} = #{v}" }
это просто хеш: P, так что просто повторяйте его, как с любым хешем
Если params
является хешем, вы можете попробовать:
params.keys.each do |k|
puts "#{k} - #{params[k]}"
end