Recapitulação - Data Pipeline
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 a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em 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 / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline