Sha256: 4197dd18f4df1ea2a50fecc8596d14832c5bd783b7a3652b4b74da4e62676307

Contents?: true

Size: 688 Bytes

Versions: 2

Compression:

Stored size: 688 Bytes

Contents

require 'nokogiri'

require "sniffles/version"

module Sniffles
  def self.sniff(html)
    doc = Nokogiri::HTML::parse(html)
    
    output = {}
    output[:wordpress] = true if wordpress?(doc)
    output[:jquery] = true if jquery?(html)
    output[:quantcast] = true if quantcast?(html)
    output[:mixpanel] = true if mixpanel?(html)
    
    output
  end
  
  def self.wordpress?(doc)
    !doc.xpath('.//link[contains(@href,"wp-content")]').empty?
  end
  
  def self.jquery?(html)
    !!(html =~ /jQuery/)
  end
  
  def self.quantcast?(html)
    !!(html =~ /\.quantserve\.com\/quant\.js/)
  end

  def self.mixpanel?(html)
    !!(html =~ /api.mixpanel.com\S+mixpanel.js/)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sniffles-0.0.3 lib/sniffles.rb
sniffles-0.0.2 lib/sniffles.rb