Module: Abrupt

Defined in:
lib/abrupt.rb,
lib/abrupt/crawler.rb,
lib/abrupt/version.rb,
lib/abrupt/converter.rb,
lib/abrupt/service/base.rb,
lib/abrupt/service/link.rb,
lib/abrupt/service/input.rb,
lib/abrupt/service/picture.rb,
lib/abrupt/service/subject.rb,
lib/abrupt/service/complexity.rb,
lib/abrupt/service/readability.rb,
lib/abrupt/transformation/base.rb,
lib/abrupt/service/absolute_url.rb,
lib/abrupt/transformation/client/base.rb,
lib/abrupt/transformation/client/visit.rb,
lib/abrupt/transformation/website/base.rb,
lib/abrupt/transformation/website/link.rb,
lib/abrupt/transformation/website/input.rb,
lib/abrupt/transformation/client/visitor.rb,
lib/abrupt/transformation/website/picture.rb,
lib/abrupt/transformation/website/subject.rb,
lib/abrupt/transformation/client/page_view.rb,
lib/abrupt/transformation/website/complexity.rb,
lib/abrupt/transformation/website/readability.rb

Overview

Author:

  • Manuel Dudda

Defined Under Namespace

Modules: Service, Transformation Classes: Converter, Crawler

Constant Summary collapse

VOC =
RDF::Vocabulary.new('http://wba.cs.hs-rm.de/AbRUPt/')
VOC_FILE =
File.join File.dirname(__dir__), 'assets', 'voc', 'tbox.ttl'
RULES_DIR =
File.join File.dirname(__dir__), 'assets', 'rules', '*'
DELIMITER =
'/'
PREFIXES =
{
    abrupt: VOC.to_s,
    rdf: RDF.to_s,
    rdfs: RDF::RDFS.to_s,
    xsd: RDF::XSD.to_s,
    owl: RDF::OWL.to_s
}
TIME_INPUT_FORMAT =
'%d/%b/%Y:%H:%M:%S'
TIME_OUTPUT_FORMAT =
'%Y-%m-%d_%H%M%S'
VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.append(file, user_file, assertions) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/abrupt.rb', line 84

def self.append(file, user_file, assertions)
  converter = Converter.instance
  converter.append_tbox if assertions.include?('tbox')
  converter.append_website_data(file) if assertions.include?('website')
  converter.append_user_data(user_file) if assertions.include?('user')
  converter.append_rules if assertions.include?('rules')
end

.convert(file, *args) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/abrupt.rb', line 75

def self.convert(file, *args)
  converter = Converter.instance
  assertions = args.last[:assertions].split ','
  assertions.delete 'website' if args.count <= 1
  converter.init(args.last) # options
  append file, args.first, assertions
  converter.result
end

.crawl(uri, *args) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/abrupt.rb', line 59

def self.crawl(uri, *args)
  opts = args.first
  crawler = Abrupt::Crawler.new uri, opts
  start_time = Time.now
  log "begin: #{start_time}\n"
  result = crawler.crawl
  end_time = Time.now
  log "\nfinished in #{(end_time - start_time).round} sec.\n\n"
  case opts[:format]
  when 'xml'
    puts Converter.xml(result)
  else # owl as default
    puts Converter.owl(result)
  end
end

.format_time(time) ⇒ Object



47
48
49
# File 'lib/abrupt.rb', line 47

def self.format_time(time)
  parse_time(time).strftime(TIME_OUTPUT_FORMAT)
end

.log(msg) ⇒ Object



55
56
57
# File 'lib/abrupt.rb', line 55

def self.log(msg)
  print msg
end

.parse_time(time) ⇒ Object



43
44
45
# File 'lib/abrupt.rb', line 43

def self.parse_time(time)
  DateTime.strptime(time, TIME_INPUT_FORMAT) rescue nil
end

.rootObject



51
52
53
# File 'lib/abrupt.rb', line 51

def self.root
  File.dirname __dir__
end