From 16779950baf0ab130c1a77a8f9944db8b04a95bf Mon Sep 17 00:00:00 2001
From: pjs <pjs@alum.mit.edu>
Date: Mon, 21 Dec 2015 21:05:58 -0800
Subject: [PATCH] code cleanup on AoModel

---
 demos/AoModel.rb | 142 +++++++++++++++++++++++------------------------
 1 file changed, 71 insertions(+), 71 deletions(-)

diff --git a/demos/AoModel.rb b/demos/AoModel.rb
index 147283c..a7649e4 100644
--- a/demos/AoModel.rb
+++ b/demos/AoModel.rb
@@ -1,26 +1,25 @@
 #!/usr/bin/env ruby
 
 require 'rubygems' if RUBY_VERSION =~ /^1\.8/
-require 'simplekit'
+require_relative '../lib/simplekit'
 
 # Demonstration model of Operational Availability (Ao).
-
 class AoModel
   include SimpleKit
 
   # model state
-  attr_reader :numAvailableJeeps,
-    :numAvailableMechanics,
-    :maintenanceQLength,
-    :breakdownQLength
+  attr_reader :num_available_jeeps,
+              :num_available_mechanics,
+              :maintenance_q_length,
+              :breakdown_q_length
 
   # model parameters
-  attr_reader :maxJeeps,
-    :maxMaintainers,
-    :breakdownRate,
-    :maintenanceCycleInDays,
-    :repairRate,
-    :haltTime
+  attr_reader :max_jeeps,
+              :max_maintainers,
+              :breakdown_rate,
+              :maintenance_cycle_in_days,
+              :repair_rate,
+              :halt_time
 
   # Exponential random variate generator with specified rate.
   def exponential(rate)
@@ -30,91 +29,90 @@ class AoModel
   # the actual model implementation...
 
   # Constructor initializes the model parameters.
-  def initialize(maxJeeps, maxMaintainers, breakdownRate,
-                 maintenanceCycleInDays, meanRepairTime, haltTime)
-    @maxJeeps = maxJeeps
-    @maxMaintainers = maxMaintainers
-    @breakdownRate = breakdownRate
-    @maintenanceCycleInDays = maintenanceCycleInDays
-    @repairRate = 1.0 / meanRepairTime
-    @haltTime = haltTime
+  def initialize(max_jeeps, max_maintainers, breakdown_rate,
+                 maintenance_cycle_in_days, mean_repair_time, halt_time)
+    @max_jeeps = max_jeeps
+    @max_maintainers = max_maintainers
+    @breakdown_rate = breakdown_rate
+    @maintenance_cycle_in_days = maintenance_cycle_in_days
+    @repair_rate = 1.0 / mean_repair_time
+    @halt_time = halt_time
   end
 
   # init method kickstarts a simplekit model.  State variables are
   # set to initial values, and some preliminary events get scheduled
   def init
-    @numAvailableJeeps = @maxJeeps
-    @numAvailableMechanics = @maxMaintainers
-    @maintenanceQLength = 0
-    @breakdownQLength = 0
-    @numAvailableJeeps.times do |i|
-      breakdownTime = exponential(@breakdownRate)
-      if (breakdownTime <= @maintenanceCycleInDays)
-        schedule(:breakdown, breakdownTime)
+    @num_available_jeeps = @max_jeeps
+    @num_available_mechanics = @max_maintainers
+    @maintenance_q_length = 0
+    @breakdown_q_length = 0
+    @num_available_jeeps.times do
+      breakdown_time = exponential(@breakdown_rate)
+      if (breakdown_time <= @maintenance_cycle_in_days)
+        schedule(:breakdown, breakdown_time)
       else
-        schedule(:maintenance, @maintenanceCycleInDays)
+        schedule(:maintenance, @maintenance_cycle_in_days)
       end
     end
-    schedule(:halt, @haltTime)
-    STDOUT.puts "DailyAoReport"
-    schedule(:dailyReport, 0.0)
+    schedule(:halt, @halt_time)
+    STDOUT.puts 'DailyAoReport'
+    schedule(:daily_report, 0.0)
   end
 
   # Event methods follow...
 
-  def dailyReport
-    STDOUT.printf "%d\n", @numAvailableJeeps if model_time < @haltTime
-    schedule(:dailyReport, 8.0)
+  def daily_report
+    STDOUT.printf "%d\n", @num_available_jeeps if model_time < @halt_time
+    schedule(:daily_report, 8.0)
   end
 
   def breakdown
-    @breakdownQLength += 1
-    @numAvailableJeeps -= 1
-    schedule(:beginBreakdownService, 0.0) if (@numAvailableMechanics > 0)
+    @breakdown_q_length += 1
+    @num_available_jeeps -= 1
+    schedule(:begin_breakdown_service, 0.0) if @num_available_mechanics > 0
   end
 
   def maintenance
-    @maintenanceQLength += 1
-    @numAvailableJeeps -= 1
-    schedule(:beginMaintenanceService, 0.0) if (@numAvailableMechanics > 0)
+    @maintenance_q_length += 1
+    @num_available_jeeps -= 1
+    schedule(:begin_maintenance_service, 0.0) if @num_available_mechanics > 0
   end
 
-  def beginMaintenanceService
-    @maintenanceQLength -= 1
-    @numAvailableMechanics -= 1
+  def begin_maintenance_service
+    @maintenance_q_length -= 1
+    @num_available_mechanics -= 1
     if (rand <= 0.95)
-      schedule(:endService, (6.5 - rand) / 8.0)
+      schedule(:end_service, (6.5 - rand) / 8.0)
     else
-      schedule(:endService, exponential(@repairRate / 4.0))
+      schedule(:end_service, exponential(@repair_rate / 4.0))
     end
   end
 
-  def beginBreakdownService
-    @breakdownQLength -= 1
-    @numAvailableMechanics -= 1
+  def begin_breakdown_service
+    @breakdown_q_length -= 1
+    @num_available_mechanics -= 1
     if (rand <= 0.8)
-      schedule(:endService, exponential(@repairRate))
+      schedule(:end_service, exponential(@repair_rate))
     else
-      schedule(:endService, exponential(@repairRate / 4.0))
+      schedule(:end_service, exponential(@repair_rate / 4.0))
     end
   end
 
-  def endService
-    @numAvailableMechanics += 1
-    @numAvailableJeeps += 1
-    if (@maintenanceQLength > 0)
-      schedule(:beginMaintenanceService, 0.0)
+  def end_service
+    @num_available_mechanics += 1
+    @num_available_jeeps += 1
+    if @maintenance_q_length > 0
+      schedule(:begin_maintenance_service, 0.0)
     else
-      schedule(:beginBreakdownService, 0.0) if (@breakdownQLength > 0)
+      schedule(:begin_breakdown_service, 0.0) if @breakdown_q_length > 0
     end
-    breakdownTime = exponential(@breakdownRate)
-    if (breakdownTime <= @maintenanceCycleInDays)
-      schedule(:breakdown, breakdownTime)
+    breakdown_time = exponential(@breakdown_rate)
+    if (breakdown_time <= @maintenance_cycle_in_days)
+      schedule(:breakdown, breakdown_time)
     else
-      schedule(:maintenance, @maintenanceCycleInDays)
+      schedule(:maintenance, @maintenance_cycle_in_days)
     end
   end
-
 end
 
 # Run model based on command-line arguments...
@@ -126,14 +124,16 @@ if (ARGV.length != 6)
   STDERR.puts "\tMaintenance cycle length (int)"
   STDERR.puts "\tMean repair time (double)"
   STDERR.puts "\tNumber of days to run (int)"
-  STDERR.puts "\nExample: ruby #{File.basename($0)} 50 2 0.01 90 3.0 50\n"
+  prog_name = File.basename($PROGRAM_NAME)
+  STDERR.puts "\nExample: ruby #{prog_name} 50 2 0.01 90 3.0 50\n"
 else
-  maxJeeps = ARGV[0].to_i
-  maxMaintainers = ARGV[1].to_i
-  breakdownRate = ARGV[2].to_f
-  maintenanceCycleInDays = ARGV[3].to_i
-  meanRepairTime = ARGV[4].to_f
-  haltTimeInDays = ARGV[5].to_i
-  AoModel.new(maxJeeps, maxMaintainers, breakdownRate,
-              maintenanceCycleInDays, meanRepairTime, 8.0 * haltTimeInDays).run
+  max_jeeps = ARGV[0].to_i
+  max_maintainers = ARGV[1].to_i
+  breakdown_rate = ARGV[2].to_f
+  maintenance_cycle_in_days = ARGV[3].to_i
+  mean_repair_time = ARGV[4].to_f
+  halt_time_in_days = ARGV[5].to_i
+  AoModel.new(max_jeeps, max_maintainers, breakdown_rate,
+              maintenance_cycle_in_days, mean_repair_time,
+              8.0 * halt_time_in_days).run
 end
-- 
GitLab