class MajesticSeo::Api::ItemInfo
Attributes
ac_rank[RW]
analysis_results_unit_cost[RW]
citation_flow[RW]
crawled[RW]
crawled_urls[RW]
data[RW]
download_backlinks_analysis_results_unit_cost[RW]
download_referring_domains_analysis_results_unit_cost[RW]
error_message[RW]
exact_external_edu_backlinks[RW]
exact_external_gov_backlinks[RW]
exact_referring_edu_domains[RW]
exact_referring_gov_domains[RW]
external_backlinks[RW]
external_edu_backlinks[RW]
external_gov_backlinks[RW]
final_redirect_result[RW]
get_top_backlinks_analysis_results_unit_cost[RW]
hash_mappings[RW]
index[RW]
indexed_urls[RW]
language_codes[RW]
language_confidences[RW]
language_descriptions[RW]
language_page_ratios[RW]
language_total_pages[RW]
last_crawl_date[RW]
last_crawl_result[RW]
last_seen[RW]
mappings[RW]
non_unique_link_types[RW]
non_unique_link_types_mappings[RW]
outbound_domain_links[RW]
outbound_external_backliks[RW]
outbound_internal_backlinks[RW]
outbound_links_pages[RW]
redirecting[RW]
redirecting_to[RW]
referring_domain_types[RW]
referring_domain_types_mappings[RW]
referring_domains[RW]
referring_edu_domains[RW]
referring_gov_domains[RW]
referring_ip_addresses[RW]
referring_language_codes[RW]
referring_language_confidences[RW]
referring_language_descriptions[RW]
referring_language_page_ratios[RW]
referring_language_total_pages[RW]
referring_subnets[RW]
result_code[RW]
root_domain_ip_address[RW]
status[RW]
success[RW]
title[RW]
topical_trust_flows[RW]
total_non_unique_links[RW]
trust_flow[RW]
trust_metric[RW]
type[RW]
url[RW]
Public Class Methods
new(data)
click to toggle source
This method returns a new instance of the Response
class. If one of the parameters are not provided, it will default to nil.
# File lib/majestic_seo/api/item_info.rb, line 25 def initialize(data) self.data = data self.mappings = { "ItemNum" => {:index => :integer}, "ItemType" => {:type => :integer}, "Item" => {:url => :string}, "ResultCode" => {:result_code => :string}, "Status" => {:status => :string}, "ExtBackLinks" => {:external_backlinks => :integer}, "RefDomains" => {:referring_domains => :integer}, "IndexedURLs" => {:indexed_urls => :integer}, "AnalysisResUnitsCost" => {:analysis_results_unit_cost => :integer}, "ACRank" => {:ac_rank => :integer}, "GetTopBackLinksAnalysisResUnitsCost" => {:get_top_backlinks_analysis_results_unit_cost => :integer}, "DownloadBacklinksAnalysisResUnitsCost" => {:download_backlinks_analysis_results_unit_cost => :integer}, "DownloadRefDomainBacklinksAnalysisResUnitsCost" => {:download_referring_domains_analysis_results_unit_cost => :integer}, "RefIPs" => {:referring_ip_addresses => :integer}, "RefSubNets" => {:referring_subnets => :integer}, "RefDomainsEDU" => {:referring_edu_domains => :integer}, "ExtBackLinksEDU" => {:external_edu_backlinks => :integer}, "RefDomainsGOV" => {:referring_gov_domains => :integer}, "ExtBackLinksGOV" => {:external_gov_backlinks => :integer}, "RefDomainsEDU_Exact" => {:exact_referring_edu_domains => :integer}, "ExtBackLinksEDU_Exact" => {:exact_external_edu_backlinks => :integer}, "RefDomainsGOV_Exact" => {:exact_referring_gov_domains => :integer}, "ExtBackLinksGOV_Exact" => {:exact_external_gov_backlinks => :integer}, "CrawledFlag" => {:crawled => :boolean}, "LastCrawlDate" => {:last_crawl_date => :date}, "LastCrawlResult" => {:last_crawl_result => :string}, "RedirectFlag" => {:redirecting => :boolean}, "FinalRedirectResult" => {:final_redirect_result => :string}, "LastSeen" => {:last_seen => :string}, "OutDomainsExternal" => {:outbound_domain_links => :integer}, "OutLinksExternal" => {:outbound_external_backliks => :integer}, "OutLinksInternal" => {:outbound_internal_backlinks => :integer}, "OutLinksPages" => {:outbound_links_pages => :integer}, "Title" => {:title => :string}, "RedirectTo" => {:redirecting_to => :string}, "CitationFlow" => {:citation_flow => :integer}, "TrustFlow" => {:trust_flow => :integer}, "TrustMetric" => {:trust_metric => :integer}, "CrawledURLs" => {:crawled_urls => :integer}, "RootDomainIPAddress" => {:root_domain_ip_address => :string}, "Language" => {:language_codes => :string_array}, "LanguageDesc" => {:language_descriptions => :string_array}, "LanguageConfidence" => {:language_confidences => :integer_array}, "LanguagePageRatios" => {:language_page_ratios => :float_array}, "LanguageTotalPages" => {:language_total_pages => :integer}, "RefLanguage" => {:referring_language_codes => :string_array}, "RefLanguageDesc" => {:referring_language_descriptions => :string_array}, "RefLanguageConfidence" => {:referring_language_confidences => :integer_array}, "RefLanguagePageRatios" => {:referring_language_page_ratios => :float_array}, "RefLanguageTotalPages" => {:referring_language_total_pages => :integer}, "TotalNonUniqueLinks" => {:total_non_unique_links => :integer}, } self.non_unique_link_types = {} self.non_unique_link_types_mappings = { "NonUniqueLinkTypeHomepages" => {:homepages => :integer}, "NonUniqueLinkTypeIndirect" => {:indirect => :integer}, "NonUniqueLinkTypeDeleted" => {:deleted => :integer}, "NonUniqueLinkTypeNoFollow" => {:no_follow => :integer}, "NonUniqueLinkTypeProtocolHTTPS" => {:https => :integer}, "NonUniqueLinkTypeFrame" => {:frame => :integer}, "NonUniqueLinkTypeImageLink" => {:image_link => :integer}, "NonUniqueLinkTypeRedirect" => {:redirect => :integer}, "NonUniqueLinkTypeTextLink" => {:text_link => :integer}, } self.referring_domain_types = {} self.referring_domain_types_mappings = { "RefDomainTypeLive" => {:live => :integer}, "RefDomainTypeFollow" => {:follow => :integer}, "RefDomainTypeHomepageLink" => {:homepage_link => :integer}, "RefDomainTypeDirect" => {:direct => :integer}, "RefDomainTypeProtocolHTTPS" => {:https => :integer}, } self.hash_mappings = { /^NonUniqueLinkType/i => :non_unique_link_types, /^RefDomainType/i => :referring_domain_types } self.topical_trust_flows = {} parse_item_info end
Public Instance Methods
convert_value(value, column, data_type)
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 166 def convert_value(value, column, data_type) return case data_type when :string value.to_s when :integer value.to_i when :float value.to_f when :date value.to_s when :boolean value.to_s.downcase.eql?("true") when :string_array value.to_s.include?(",") ? value.to_s.split(",").collect { |val| val.to_s } : [value.to_s] when :integer_array value.to_s.include?(",") ? value.to_s.split(",").collect { |val| val.to_i } : [value.to_s] when :float_array value.to_s.include?(",") ? value.to_s.split(",").collect { |val| val.to_f } : [value.to_s] end end
parse_field(column_mapping, api_column, api_value)
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 152 def parse_field(column_mapping, api_column, api_value) column = nil value = nil mapping = column_mapping.fetch(api_column, nil) mapping.each do |col, data_type| column = col value = convert_value(api_value.to_s, col, data_type) end if mapping && !mapping.empty? && !api_value.to_s.empty? return column, value end
parse_hashes()
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 128 def parse_hashes self.data.each do |api_column, api_value| self.hash_mappings.each do |regex, mappings_symbol| if api_column =~ regex column_mapping = self.send("#{mappings_symbol}_mappings".to_sym) column, value = parse_field(column_mapping, api_column, api_value) self.send(mappings_symbol)[column] = value if !column.nil? && !value.nil? end end end end
parse_item_info()
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 116 def parse_item_info self.data.each do |api_column, api_value| column, value = parse_field(self.mappings, api_column, api_value) self.send("#{column}=", value) if !column.nil? && !value.nil? end parse_hashes parse_topical_trust_flows set_result_status set_item_type end
parse_topical_trust_flows()
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 140 def parse_topical_trust_flows self.data.each do |api_column, api_value| if api_column =~ /^TopicalTrustFlow_Topic_\d*/i topic = api_value.to_s index = api_column.match(/TopicalTrustFlow_Topic_(?<index>\d*)/i)[:index].to_i value = self.data.fetch("TopicalTrustFlow_Value_#{index}", nil) self.topical_trust_flows[index] = {topic: topic, value: value.to_i} if !index.nil? && !topic.empty? && !value.nil? end end end
set_item_type()
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 192 def set_item_type self.type = case self.type when 1 then :root_domain when 2 then :sub_domain when 3 then :url end end
set_result_status()
click to toggle source
# File lib/majestic_seo/api/item_info.rb, line 187 def set_result_status self.success = (self.result_code && self.result_code.downcase.eql?("ok")) self.error_message = self.success ? "" : self.result_code end