class Vispan::WebPreview
Public Class Methods
new(files)
click to toggle source
# File lib/vispan.rb, line 22 def initialize(files) @input = files[:input] @output = files[:output] end
Public Instance Methods
call(env)
click to toggle source
# File lib/vispan.rb, line 11 def call(env) @szenarios = [] separate_szenarios(@input) @szenarios.each(&:assign_ranks) visualize(@output) file_ending = File.extname(@output).delete('.') [200, { 'Content-Type' => "image/#{file_ending}" }, [IO.read(@output)]] end
create_new_relation(line)
click to toggle source
# File lib/vispan.rb, line 52 def create_new_relation(line) @relation_lines << line if line != "\n" relation = Relation.new(@relation_lines, @szenarios.length) @single_szenario.add_relation(relation) @relation_lines = [] end
create_new_szenario(line)
click to toggle source
# File lib/vispan.rb, line 43 def create_new_szenario(line) if @single_szenario.title == '' @single_szenario.set_title(line) else @szenarios << @single_szenario @single_szenario = Szenario.new(line) end end
separate_szenarios(input_file)
click to toggle source
# File lib/vispan.rb, line 27 def separate_szenarios(input_file) @single_szenario = Szenario.new @relation_lines = [] @lines = File.readlines(input_file) @lines.each_with_index do |line, index| if line[0] == '-' create_new_szenario(line) elsif (line == "\n" && !@relation_lines.empty?) || (index == @lines.length - 1) create_new_relation(line) elsif line != "\n" @relation_lines << line end end @szenarios << @single_szenario end
visualize(output_file)
click to toggle source
# File lib/vispan.rb, line 59 def visualize(output_file) graphic = OutputGraphic.new(@szenarios, output_file) graphic.generate end