LeetCode: Count Items Matching a Rule

Question

You are given an array items, where each items[i] = [typei, colori, namei] describes the type, color, and name of the ith item. You are also given a rule represented by two strings, ruleKey and ruleValue.

The ith item is said to match the rule if one of the following is true:

ruleKey == "type" and ruleValue == typei.
ruleKey == "color" and ruleValue == colori.
ruleKey == "name" and ruleValue == namei.

Return the number of items that match the given rule.

Example 1:
Input:
items = [ [ "phone", "blue","pixel" ], [ "computer", "silver"," lenovo" ],
[ "phone", "gold", "iphone" ] ], ruleKey = "color", ruleValue = "silver"

Output: 1

Explanation:
There is only one item matching the given rule, which is ["computer","silver","lenovo"].

Solution

def count_matches(items, rule_key, rule_value)
  dict = {}
  arr_type = []
  arr_color = []
  arr_name = []

  items.each do |item|
    arr_type << item[0]
    dict['type'] = arr_type
    arr_color << item[1]
    dict['color'] = arr_color
    arr_name << item[2]
    dict['name'] = arr_name
  end
  dict[rule_key].count(rule_value)
end