Sha256: afbdba8009c080896f21978f0d34864124fdc5a8d2a063fea307596bc07be59d

Contents?: true

Size: 950 Bytes

Versions: 3

Compression:

Stored size: 950 Bytes

Contents

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 fetch(arguments = {})
        raise ArgumentError, "Any valid URL." unless arguments.has_key?(:url)
        @arguments = arguments
        @arguments[:response_group] = Array(arguments.fetch(:response_group, DEFAULT_RESPONSE_GROUP))

        loading_response_data
        self
      end

      def loading_response_data
        @response_body = Awis::Connection.new.get(params)
      end

      private
      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

3 entries across 3 versions & 1 rubygems

Version Path
awis-sdk-ruby-0.0.4 lib/awis/api/url_info.rb
awis-sdk-ruby-0.0.3 lib/awis/api/url_info.rb
awis-sdk-ruby-0.0.1 lib/awis/api/url_info.rb