class ValidatePage

Public Class Methods

on(attrib, content, message) click to toggle source
# File lib/validate_page.rb, line 19
def self.on(attrib, content, message)
  @@attrib = attrib
  @@content = content
  @@message = message
  return self
end
set_parser(name) click to toggle source
# File lib/validate_page.rb, line 11
def self.set_parser(name)
  @@parser = name
end
validator() click to toggle source
# File lib/validate_page.rb, line 15
def self.validator
  @@parser
end

Public Instance Methods

present(url) click to toggle source
# File lib/validate_page.rb, line 32
def present(url)
  if @@parser == :text_parser
    page = Net::HTTP.get_response(URI.parse(url)).response.body
    @@content.split(/[;,\s\.]+/).any?{|c| page.include?(c)}
  else
    uri = URI.parse(url.chomp)
    Capybara.app_host = uri.scheme + '://' + uri.host
    visit uri.path
    @@content.split(/[;,\s\.]+/).any?{|c| page.has_text?(c)}
  end
end
validate(record) click to toggle source
# File lib/validate_page.rb, line 26
def validate(record)
  if(present record[@@attrib])
    record.errors.add @@attrib, (@@message.present? ? @@message : 'page contains inappropriate content')
  end
end