Ich versuche einen Weg zu finden, um den folgenden Test zu bestehen, aber ich benutze Schleifen in Schleifen, die schrecklich sind. Kann jemand helfen? Hier ist der Test:Suche nach bestimmten Werten mit einem Array von Hashes
require 'spec_helper'
describe Promotion_Check do
let(:check) { Promotion_Check.new rules_list }
let(:item_rule) { {rule_type: "item", item_code: 1, number_of_items: 2, new_item_price: 8.50} }
let(:total_rule) { {rule_type: "total", total_price_break: 60.00, discount_percentage: 10} }
let(:rules_list) { [ 1 => item_rule, 2 => total_rule ] }
describe "#applicable_item_rules" do
it "finds the rules that apply to the baskets items" do
item_code = 1
count = 2
expect(check.applicable_item_rules(item_code, count)).to eq [item_rule]
end
end
end
Grundsätzlich möchte ich ein Array von Hashes wie so suchen:
rules_list = [ 1 => {rule_type: "item", item_code: 1, number_of_items: 2, new_item_price: 8.50}, 2 => {rule_type: "item", item_code: 2, number_of_items: 4, new_item_price: 7.50}]
für alles, was einen Wert mit passendem hat: item_code und: NUMBER_OF_ITEMS und schieben diesen Wert in ein Array.
Vielen Dank für jede Hilfe