Recapitulação - Pipeline de Dados
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy. Lição 27 de 56.
Um desafio que processa um pequeno conjunto de dados através de uma cadeia de métodos Enumerable, da maneira que você escreverá Ruby na vida real.
Desafio
MédioO array orders é fornecido, cada elemento é um hash com :product, :qty e :price. Imprima três linhas:
- A receita total de todos os pedidos (
qty * price, somados). Usemap+reduce(:+)ousum { ... }. - O número de pedidos com
qty >= 3(usecount). - O nome do produto do pedido com a maior receita (use
max_by).
Para o array padrão, a saída é:
59
2
milkExperimente você mesmo
orders = [
{ product: "apple", qty: 4, price: 2 },
{ product: "bread", qty: 1, price: 3 },
{ product: "milk", qty: 6, price: 4 },
{ product: "cheese", qty: 2, price: 12 }
]
# TODO: receita total, contagem de pedidos com qtd >= 3, produto com maior receita
Todas as lições de Lógica e Fluxo
1Strings em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um intervalo?Métodos de intervaloIntervalos em Case / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de DadosPratique por conta própria: Compilador de Ruby online