def perform(country: nil, title: nil)
      @session.visit(apple_url(country))

      response = {
        title:    @session.find(".section-date .date-copy").text.strip,
        services: [],
      }

      MAX_RETRY_COUNT.times do
        services = fetch_services

        if services.empty?
          # wait until the page is fully loaded
          sleep 1
        else
          response[:services] = services
          break
        end
      end

      raise "Not found services" if response[:services].empty?

      unless self.class.blank_string?(title)
        response[:services].select! { |service| service[:title] == title }
      end

      response[:services].sort_by! { |service| service[:title] }

      response
    end
def perform(country: nil, title: nil)
      @session.visit(apple_url(country))

      response = {
        title:    @session.find(".section-date .date-copy").text.strip,
        services: [],
      }

      MAX_RETRY_COUNT.times do
        services = fetch_services

        if services.empty?
          # wait until the page is fully loaded
          sleep 1
        else
          response[:services] = services
          break
        end
      end

      raise "Not found services" if response[:services].empty?

      unless self.class.blank_string?(title)
        response[:services].select! { |service| service[:title] == title }
      end

      response[:services].sort_by! { |service| service[:title] }

      response
    end
crawl apple system status page
 @param country [String] country code. (e.g. jp, ca, fr. default. us)
 @param title   [String] If specified, narrow the service title
 @return [Hash]
 @example response format
   {
     title: ,
     services: [
       { title: , description: , status:  }
     ]
   }