Skip to content

Instantly share code, notes, and snippets.

@serradura
Last active December 18, 2018 15:34
Show Gist options
  • Save serradura/35fdd4842f40b21dbe92dbee216a9c4d to your computer and use it in GitHub Desktop.
Save serradura/35fdd4842f40b21dbe92dbee216a9c4d to your computer and use it in GitHub Desktop.
Exemplo de rake task numa abordagem Procedural |> Funcional (Rubyconf Brasil 2018)
ArgAsNumber = -> (args) do
-> key { args[key].to_f }
end
CalculateTaskArgumentsWith = -> (operator) do
-> (task, args) do
arg_as_number = ArgAsNumber.(args)
puts [:a, :b].map(&arg_as_number).reduce(&operator)
end
end
desc 'adds two numbers'
task :sum, [:a, :b], &CalculateTaskArgumentsWith.(:+)
desc 'subtract two numbers.'
task :sub, [:a, :b], &CalculateTaskArgumentsWith.(:-)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment