lib/cohesion.rb in cohesion-0.0.2 vs lib/cohesion.rb in cohesion-0.0.3

- old
+ new

@@ -1,11 +1,69 @@ require "cohesion/version" require 'cobweb' +require 'ptools' -Dir["tasks/**/*.rake"].each { |ext| load ext } if defined?(Rake) +require 'cohesion/railtie' if defined?(Rails) module Cohesion class Check + + def self.rails_text + root_path = Rails.root.to_s + Dir.glob("**/*").each do |filename| + unless File.directory?(filename) || File.binary?(filename) || filename.ends_with?(".rdb") + f = File.open(filename, "r") + content = f.read() + f.close + if content =~ /(https?:\/\/[a-zA-Z0-9\.\/\-_%&\?]+)/ + print "Checking #{$1} " + begin + status_code = Cobweb.new(:raise_exceptions => true).head($1)[:status_code].to_i + if status_code != 200 + puts " [#{status_code}] \e[31m\u2717\e[0m" + else + puts "\e[32m\u2713\e[0m" + end + rescue SocketError + status_code = 0 + puts " [DNS Failed] \e[31m\u2717\e[0m" + end + end + end + end + end + + def self.rails_object + root_path = Rails.root.to_s + #app_name = Rails.application.name + #puts "Checking #{app_name}..." + app = CobwebSample::Application + app.routes.default_url_options = { :host => 'xxx.com' } + + Dir.glob("app/controllers/**/*").each do |filename| + controller_name = filename.gsub(".rb","").split("/")[-1].classify + unless controller_name == "ApplicationController" + puts "Processing #{controller_name}" + controller = controller_name.constantize.new + + view = ActionView::Base.new(ActionController::Base.view_paths, {}, controller) + + view.view_paths = ActionController::Base.view_paths + view.extend ApplicationHelper + view.controller = controller + view.class_eval do + include ApplicationHelper + include app.routes.url_helpers + end + begin + puts view.render(:template => '/tests/index.html.erb') + rescue => e + puts "Error rendering view: #{e.message}" + end + end + end + end + def self.site(url) errors = [] failures = [] CobwebCrawler.new(:cache => 600, :cache_type => :full, :crawl_linked_external => true).crawl(url) do |page| print page[:url]