Advertisement
Guest User

Untitled

a guest
May 24th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.63 KB | None | 0 0
  1. require_relative "product.rb"
  2. require_relative "store.rb"
  3. require_relative "customer.rb"
  4. require_relative "order.rb"
  5. require "rexml/document"
  6.  
  7. class Shop
  8.   def initialize(arguments)
  9.     raise "Wrong number of arguments" if ARGV.count < 5
  10.     @input_database = ARGV[0]
  11.     @ipnut_store = ARGV[1]
  12.     @orders_list = ARGV[2]
  13.     @output_store = ARGV[3]
  14.     @output_database = ARGV[4]
  15.     # 1. Overte spravne mnozstvi argumentu. V pripade chyby vyvolejte vyjimku.
  16.     # 2. Ulozte si argumenty do vhodnych promennych pro pozdejsi pouziti
  17.   end
  18.  
  19.   def load_products
  20.     File.open(ARGV[0], "r") do |file|
  21.      product_list = REXML::Document.new(file)
  22.      product_list.root.elements.each do |product_elements|
  23.        name = student_element.elements["name"].text
  24.        price = student_element.elements["price"].text
  25.        product = Produkt.new()
  26.      end
  27.     end
  28.     # 1. Nactete XML soubor s produkty. V pripade problemu (napr. neexistujici soubor) vyvolejte vyjimku.
  29.     # 2. Prochazejte XML soubor a vytvarejte nove objekty tridy Produkt. Nezapomente odchytavat vyjimky.
  30.   end
  31.  
  32.   def load_store
  33.     @store = Store.new
  34.     # 1. Nactete XML soubor se stavem skladu. V pripade problemu (napr. neexistujici soubor) vyvolejte vyjimku.
  35.     # 2. Prochazejte XML soubor a volejte @store.add_product.
  36.   end
  37.  
  38.   def load_orders
  39.     @orders = []
  40.     # 1. Nactete XML soubor s objednavkami. V pripade problemu (napr. neexistujici soubor) vyvolejte vyjimku.
  41.     # 2. Prochazejte XML soubor a pro jednotlive objednavky:
  42.     # 2a. Vytvorte novy objekt tridy Order.
  43.     # 2b. Pro jednotlive polozky objednavky vytvorte novy objekt tridy OrderItem a predejte jej metode add_item.
  44.     # 2c. Pridejte objednavku do pole @orders.
  45.   end
  46.  
  47.   def process_order(order)
  48.     # Zpracujte objednavku.
  49.     # Prochazejte jednolive polozky objednavky a provadejte zadane kontroly.
  50.     # V pripade, ze je vse v poradku, upravte stav skladu volanim @store.sell_product.
  51.     # Nezapomente si ulozit udaje o zakaznikovi.
  52.   end
  53.  
  54.   def process_orders
  55.     # Zpracujte objednavky. Zde se deje samotna logika programu, ktera je podrobne popsana v zadani.
  56.     # Seradte objednavky dle data a v poradi od nejstarsi je zacnete zpracovavat volanim metody process_order.
  57.   end
  58.  
  59.   def save_store
  60.     # Projdete produkty v @store a ulozte je do XML souboru.
  61.   end
  62.  
  63.   def save_customers
  64.     # Projdete zakazniky ziskane ze zpracovanych zakazek a ulozte je do XML souboru.
  65.   end
  66.  
  67.   def run
  68.     # Doplnte reseni vyjimek.
  69.     load_products
  70.     load_store
  71.     load_orders
  72.     process_orders
  73.     save_store
  74.     save_customers
  75.   end
  76. end
  77.  
  78. shop = Shop.new(ARGV)
  79. shop.run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement