-
-
Save alberto/6107632 to your computer and use it in GitHub Desktop.
module DownloadPolicy | |
def self.allow_download_for?(screencast, user) | |
return false unless screencast.published? | |
return true if screencast.free? | |
return false if user.nil? | |
return user.has_screencast_access? | |
end | |
end |
Éste método está haciendo varias cosas, entiendo que cuando llamamos a allow_download_for?
ya tenemos un screencast
válido (está publicado) y un user
válido (que no es nil). Con todo no me termina de gustar la solución.
module DownloadPolicy
def self.allow_download_for?(screencast, user)
screencast.free? || user.has_screencast_access?
end
end
@ialcazar @ignasi35 os parecen más legibles vuestras soluciones?
@GermanDZ @arturoherrero no me redefináis el problema, ni es más complejo ni más sencillo :P
@GermanDZ Como decías por twitter, lo veo sobreingeniería. Creo que tendría que crecer y complicarse bastante para justificarlo o dudo que la solución fuese más sencilla, y eso que alguna vez he hecho algo similar ;)
@arturoherrero el código es el que es precisamente porque pueder haber screencasts no publicados y usuarios nulos.
Por cierto, el código es real, lo he sacado de un screencast de Destroy All Software.
Esto da para una Kata en condiciones muy del estilo del Fizz Buzz!