Skip to content

Instantly share code, notes, and snippets.

@lizixroy
Created March 26, 2017 01:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lizixroy/41ad0e83f6ca238c5d5d6aa3602c4b1d to your computer and use it in GitHub Desktop.
Save lizixroy/41ad0e83f6ca238c5d5d6aa3602c4b1d to your computer and use it in GitHub Desktop.
examples for blog
func performPreflightCheck -> Bool {
guard let fuelTank = self.fuelTank else { return false }
guard fuelTank.fuel.type == .jetFuel else { return false }
let destination = self.flightPlan.dest
let origin = self.flightPlan.origin
let distance = origin.distanceFrom(destination)
let currentFuelLevel = fuelTank.level
let currentBodyWeight = hardwareService.currentWeight
let windSpeed = WeatherService.averageWindSpeed(forFlightPlan:flightPlan)
let supportedTravelDistance = fuelTank.calculateSupportedTravelDistance(withFuelLevel:currentFuelLevel, bodyWeight:currentBodyWeight, windSpeed:windSpeed)
guard (supportedTravelDistance - distance) > 1000 else { return false }
guard (Date.now - fuelTank.lastMaintenanceTime < TWO_DAYS) else { return false }
...
guard currentWeather = weatherService.currentWeather(onRoute:flightPlan.route)
guard hardwareService.lowestWorkingTemp < currentWeather.lowestTemp { return false }
guard hardwareService.highestWorkingTemp > currentWeather.highestTemp { return false }
guard currentWeather.stormProbability < 0.002 { return false }
guard destinationWeather = weatherService.weather(in:flightPlan.dest at:flightPlan.ETA)
...
let engines = hardwareService.engines
for engine in engines {
guard (Date.now - engine.maintenanceTime < TWO_DAYS) else { return fasle }
...
}
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment