class WpItem

Attributes

found_from[R]
name[RW]
path[R]
version[W]
wp_content_dir[RW]
wp_plugins_dir[RW]

Public Class Methods

new(target_base_uri, options = {}) click to toggle source

@param [ URI ] target_base_uri @param [ Hash ] options See allowed_option

@return [ WpItem ]

# File lib/common/models/wp_item.rb, line 31
def initialize(target_base_uri, options = {})

  options[:wp_content_dir] ||= 'wp-content'
  options[:wp_plugins_dir] ||= options[:wp_content_dir] + '/plugins'

  set_options(options)
  forge_uri(target_base_uri)
end

Public Instance Methods

<=>(other) click to toggle source

@param [ WpItem ] other

# File lib/common/models/wp_item.rb, line 88
def <=>(other)
  name <=> other.name
end
==(other) click to toggle source

@param [ WpItem ] other

# File lib/common/models/wp_item.rb, line 93
def ==(other)
  name === other.name
end
===(other) click to toggle source

@param [ WpItem ] other

# File lib/common/models/wp_item.rb, line 98
def ===(other)
  self == other && version === other.version
end
allowed_options() click to toggle source

@return [ Array ] Make it private ?

# File lib/common/models/wp_item.rb, line 23
def allowed_options
  [:name, :wp_content_dir, :wp_plugins_dir, :path, :version, :vulns_file]
end
forge_uri(target_base_uri) click to toggle source

@param [ URI ] target_base_uri

@return [ void ]

# File lib/common/models/wp_item.rb, line 61
def forge_uri(target_base_uri)
  @uri = target_base_uri
end
found_from=(method) click to toggle source

Sets the #found_from attribute

@param [ String ] method The method which found the WpItem

@return [ void ]

# File lib/common/models/wp_item/findable.rb, line 10
def found_from=(method)
  found       = method[%r{find_from_(.*)}, 1]
  @found_from = found.gsub('_', ' ') if found
end
path=(path) click to toggle source

Sets the path

Variable, such as $wp-plugins$ and $wp-content$ can be used and will be replace by their value

@param [ String ] path

@return [ void ]

# File lib/common/models/wp_item.rb, line 81
def path=(path)
  @path = URI.encode(
    path.gsub(/\$wp-plugins\$/, wp_plugins_dir).gsub(/\$wp-content\$/, wp_content_dir)
  )
end
uri() click to toggle source

@return [ URI ] The uri to the WpItem, with the path if present

# File lib/common/models/wp_item.rb, line 66
def uri
  path ? @uri.merge(path) : @uri
end
url() click to toggle source

@return [ String ] The url to the WpItem

# File lib/common/models/wp_item.rb, line 71
def url; uri.to_s end