ruby / ruby/ipaddr

IPAddr#mask method accepts arguments other than integers.

Abierto
#94 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Ruby
Estrellas
82
Forks
42
Merge medio
2 h 24 min
PR fusionados (30 d)
3

Descripción

IPAddr#mask method expects an integer argument, but it accepts non-integer values (such as floats or arrays) if passed.

ip = IPAddr.new('1.2.3.4')

p ip.mask(0.1)
# => #<IPAddr: IPv4:0.0.0.0/128.0.0.0>
p ip.mask(1.2)
# => #<IPAddr: IPv4:0.0.0.0/192.0.0.0>
p ip.mask(11.3)
# => #<IPAddr: IPv4:1.0.0.0/255.240.0.0>
p ip.mask([])
# => `mask!': undefined method `<' for []:Array (NoMethodError)

So, I think it is better to restrict the arguments of this method to integers and throw an exception if they are not integers.
Like this.

ip = IPAddr.new('1.2.3.4')

p ip.mask(0.1)
# => `mask!': invalid mask 0.1 (IPAddr::InvalidPrefixError)

I'm currently implementing this improvement and want to submit a pull request as a contribute to this repo.
Would this be acceptable?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza por el método IPAddr#mask y reproduce los ejemplos de float y array del issue. El cambio estará terminado cuando los argumentos que no sean enteros generen IPAddr::InvalidPrefixError, mientras que las máscaras enteras sigan funcionando como se espera.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
ruby
Área
networking
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.