class RequestXml::Generate_Page

Public Class Methods

output_xml() click to toggle source
# File lib/request_xml.rb, line 36
def self.output_xml
  # Theoretically, a baysian algorithm would generate a numerical input itself.
  number = File.read("data/number/input.txt").strip.to_i

  # Defines the size limit to prevent going out of range.
  size_limit = File.read("data/location/location_list.txt").size.to_i

  # If the input exceeds the size limit, then reset.
  if number > size_limit
    number = 0
  end

  # Reads existing grammatical arrays.
  aspi_greeting_list = File.readlines("data/greeting/greeting_list.txt")
  aspi_agent_list    = File.readlines("data/agent/agent_list.txt")
  aspi_request_list  = File.readlines("data/request/request_list.txt")
  aspi_item_list     = File.readlines("data/item/item_list.txt")
  aspi_for_from_list = File.readlines("data/for_from/for_from_list.txt")
  aspi_location_list = File.readlines("data/location/location_list.txt")

  # Defines output of grammar component to a number.
  aspi_greet        = aspi_greeting_list[number]
  aspi_agent        = aspi_agent_list[number]
  aspi_request      = aspi_request_list[number]
  aspi_item         = aspi_item_list[number]
  aspi_for_from     = aspi_for_from_list[number]
  aspi_usr_location = aspi_location_list[number]

  # Write new xml request.
  xml_request = "
  <?xml version='1.0' ?>
  <?xml-stylesheet type='text/css' href='request.css'?>
  <request_struct description='request structure'>
    <responce>[ OUTPUT ] </responce>
    <greeting>#{aspi_greet} </greeting>
    <agent>#{aspi_agent} </agent>
    <request>#{aspi_request} </request>
    <item>#{aspi_item} </item>
    <for_from>#{aspi_for_from} </for_from>
    <user_location>#{aspi_usr_location}?</user_location>
  </request_struct>
  "

  # Write output xml to open in browser.
  open("output.xml", "w") { |f|
    f.puts xml_request
  }

  # Alternatively, you can open it in a text based browser.
  # system("w3m output.xml")
end