Sha256: 55f0faebbeb50bfa0ef4aa0ad6e145e43b8befde95291da8b6d28ce7c5d76e17

Contents?: true

Size: 959 Bytes

Versions: 7

Compression:

Stored size: 959 Bytes

Contents

# frozen_string_literal: true

module Awis
  module API
    class UrlInfo < Base
      DEFAULT_RESPONSE_GROUP = %w[
        related_links categories rank rank_by_country usage_stats
        adult_content speed language owned_domains links_in_count site_data
      ].freeze

      def load_request_uri(arguments = {})
        validation_arguments!(arguments)

        super(params)
      end

      private

      def validation_arguments!(arguments)
        before_validation_arguments(arguments)

        @arguments = arguments
        @arguments[:response_group] = Array(arguments.fetch(:response_group, DEFAULT_RESPONSE_GROUP))
      end

      def params
        {
          'Action'        => action_name,
          'Url'           => arguments[:url],
          'ResponseGroup' => response_groups
        }
      end

      def response_groups
        arguments[:response_group].sort.map { |group| camelize(group) }.join(',')
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
awis-sdk-ruby-2.1.0 lib/awis/api/url_info.rb
awis-sdk-ruby-2.0.0 lib/awis/api/url_info.rb
awis-sdk-ruby-1.1.2 lib/awis/api/url_info.rb
awis-sdk-ruby_-1.1.1.1 lib/awis/api/url_info.rb
awis-sdk-ruby_-1.1.1p1 lib/awis/api/url_info.rb
awis-sdk-ruby-1.1.1 lib/awis/api/url_info.rb
awis-sdk-ruby-1.1.0 lib/awis/api/url_info.rb