You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: opencagedata.rb
    path of file: ./repos/geocoder/lib/geocoder/results
    
    the code of the file until where you have to start completion: require 'geocoder/results/base'

module Geocoder::Result
  class Opencagedata < Base

    def poi
      %w[stadium bus_stop tram_stop].each do |key|
        return @data['components'][key] if @data['components'].key?(key)
      end
      return nil
    end

    def house_number
      @data['components']['house_number']
    end

    def address
      @data['formatted']
    end

    def street
      %w[road pedestrian highway].each do |key|
        
    
    def time_zone
      # The OpenCage API documentation states that `annotations` is available
      # "when possible" https://geocoder.opencagedata.com/api#annotations
      @data
        .fetch('annotations', {})
        .fetch('timezone', {})
        .fetch('name', nil)
    end

    def self.response_attributes
      %w[boundingbox license 
        formatted stadium]
    end

    response_attributes.each do |a|
      unless method_defined?(a)
        define_method a do
          @data[a]
        end
      end
    end