Sha256: f9a5559e1489ae5807a5f7dda061ddee5b94bf11b75881f8a32772508c93c407
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
module Sniffles module Sniffers class Wordpress include HTML attr_accessor :doc attr_reader :name, :group, :output, :response def initialize(response_body) @output = {} parse(response_body) && process_document end def process_document @output[:found] = wordpress? parse_version parse_feed parse_theme parse_pingback end private def wordpress? @doc.xpath('//link[contains(@href,"wp-content")]').any? end def parse_feed @output[:feed] = text_at("//link[@rel='alternate' and @type='application/rss+xml']/@href") end def parse_theme theme_uri = text_at("//link[@rel='stylesheet' and contains(@href,'wp-content/themes/')][1]/@href") @output[:theme] = (theme_uri ? clean_theme_uri(theme_uri)[1] : false) end def parse_version version_meta_tag = text_at("//meta[@name='generator']/@content") @output[:version] = (version_meta_tag ? extract_version(version_meta_tag)[1] : version_meta_tag) end def parse_pingback @output[:pingback] = text_at("//link[@rel='pingback']/@href") end def clean_theme_uri(uri) /wp-content\/themes\/([^\/]*)\//i.match uri end def extract_version(string) /([\d]+\.[\d]+[\.]?[\d]?)/.match string end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sniffles-0.1.1 | lib/sniffles/sniffers/cms/wordpress.rb |
sniffles-0.1.0.1 | lib/sniffles/sniffers/cms/wordpress.rb |
sniffles-0.1.0 | lib/sniffles/sniffers/cms/wordpress.rb |