Class: Oolite::Market
- Inherits:
-
Object
- Object
- Oolite::Market
- Defined in:
- lib/oolite/market.rb
Instance Method Summary collapse
-
#initialize ⇒ Market
constructor
A new instance of Market.
- #update(filename = nil) ⇒ Object
- #upgrade ⇒ Object
- #upgrade_price ⇒ Object
- #write_csv(filename = nil) ⇒ Object
Constructor Details
#initialize ⇒ Market
Returns a new instance of Market.
15 16 17 18 19 20 21 22 |
# File 'lib/oolite/market.rb', line 15 def initialize Oolite.configure do |config| @save_file_path = Pathname(config.save_file_path) path = @save_file_path.dirname @market_data_path = path + (Pathname(config.market_data_filename).to_s + '.yml') @market_data_csv = path + (Pathname(config.market_data_filename).to_s + '.csv') end end |
Instance Method Details
#update(filename = nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/oolite/market.rb', line 24 def update filename = nil filename ||= @save_file_path savefile = SaveFile.new filename add_credits_to_config savefile.credits add_cargo_to_config savefile.cargo system_name = savefile.current_system_name add_system_to_config system_name puts "Updating data for #{system_name} system" data[system_name] = savefile.local_market_data write_data_file end |
#upgrade ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/oolite/market.rb', line 41 def upgrade mf = MarketFile.new old_data = mf.data old_data.each do |key, d| updated_hash = Hash.new d.each do |item, price| if price.class == Hash updated_hash[item] = price else updated_hash[item] = { price: price, amount: 0 } end end data[key] = updated_hash end write_data_file end |
#upgrade_price ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/oolite/market.rb', line 61 def upgrade_price mf = MarketFile.new old_data = mf.data old_data.each do |key, d| updated_hash = Hash.new d.each do |item, info| updated_hash[item] = { price: (info[:price] * 10).to_i, amount: info[:amount] } end data[key] = updated_hash end write_data_file end |
#write_csv(filename = nil) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/oolite/market.rb', line 77 def write_csv filename = nil filename ||= @market_data_csv csv_doc = CSVDoc.new format_data csv_doc csv_doc.write filename puts "CSV file written to #{filename}" end |