Sha256: 1ede6b36829612a3fa69a53a45960531b020ffc8388152a35e165f8ea9c02104

Contents?: true

Size: 994 Bytes

Versions: 2

Compression:

Stored size: 994 Bytes

Contents

require 'aquanaut/asset_node'
require 'aquanaut/graph'
require 'aquanaut/page_node'
require 'aquanaut/sitemap'
require 'aquanaut/version'
require 'aquanaut/worker'

# Main module of Aquanaut
#
module Aquanaut
  class << self

    # Processes the given target domain and creates a page and asset graph.
    #
    # @param [String] target_address
    #
    # @return [Graph] the sitemap graph with pages and static assets
    #
    def process_domain(target_address)
      worker = Worker.new(target_address)
      graph = Graph.new

      worker.explore do |page_uri, links, static_assets|
        graph.add_node(PageNode.new(page_uri))

        links.each do |link_uri|
          graph.add_node(PageNode.new(link_uri))
          graph.add_edge(page_uri, link_uri)
        end

        static_assets.each do |asset|
          graph.add_node(AssetNode.new(asset['uri'], asset['type']))
          graph.add_edge(page_uri, asset['uri'])
        end
      end

      return graph
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aquanaut-0.1.2 lib/aquanaut.rb
aquanaut-0.1.1 lib/aquanaut.rb