when :mode
                    case value
                    when Integer
                        throw "invalid parameter value" if value.to_i < 0 || value.to_i > 2
                    when Symbol || String