Make sure you are running a Ruby version supported by Heroku to make your app easier to deploy later. At the time of writing, that is:
- 2.6.6
- 2.7.2
- 3.0.0
const BLANK_BOARD = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0] |
def self.count_vhs_rentals_by(attribute) | |
Rental.all.each_with_object({}) do |rental, vhs_hash| | |
vhs_hash[rental.send(“#{attribute}”)].nil? ? vhs_hash[rental.“#{attribute}”] = 1 : vhs_hash[rental.“#{attribute}”] += 1 | |
end | |
end | |
Vhs.count_vhs_rentals_by(“vhs”) #=> | |
#{<Vhs:0x00007f8d5e2bf0f0 id: 17, serial_number: "MAX-luqovgdk8e7tl", movie_id: 9 => 1, | |
#<Vhs:0x00007f8d4f81a4a0 id: 29, serial_number: "BABA-t6k24krzqclts", movie_id: 13 =>2, | |
#<Vhs:0x00007f8d4f854538 id: 11, serial_number: "BABA-begvxe7ai0rc6", movie_id: 13 =>3} |
class MaxHeap { | |
constructor(){ | |
this.values = [] | |
this.size = 0 | |
} | |
insert(value){ | |
// If no value, do nothing | |
if (value === undefined) return | |
// Insert the value, and increment the size of the heap |
class MaxHeap { | |
constructor(arr = []){ | |
this.size = 0 | |
this.values = this._heapify(arr) | |
} | |
insert(value){ | |
// If no value, do nothing | |
if (value === undefined) return | |
// Insert the value, and increment the size of the heap |
Make sure you are running a Ruby version supported by Heroku to make your app easier to deploy later. At the time of writing, that is:
// Using Conditionals | |
const newMessage = {type: "error", message: "You still haven't squished the bugs!"} | |
const generateLog = newMessage => { | |
if (newMessage.type === "warn" { | |
Log.warn(newMessage.message) | |
} else if (newMessage.type === "error" { | |
Log.error(newMessage.message) | |
} else if (newMessage.type === "notify" { |
const greetings = { | |
english: "hello", | |
spanish: "hola" | |
} | |
const langChoice = "spanish" | |
greetings.english //=> "hello" | |
greetings[langChoice] //=> "hola" |
export class Log { | |
static error(msg){ | |
let date = new Date(); | |
let time = date.toLocaleTimeString(); | |
return {type: 'error', msg: `[${time}] ERROR: ${msg}`} | |
} | |
static warn(msg){ | |
let date = new Date(); | |
let time = date.toLocaleTimeString(); |
const pokeHoles = (startingBoard, holes) => { | |
const removedVals = [] | |
const val = shuffle( range(0,80) ) | |
while (removedVals.length < holes) { | |
const nextVal = val.pop() | |
if (nextVal === undefined) throw new Error ("Impossible Game") | |
const randomRowIndex = Math.floor(nextVal / 9) // Integer 0-8 for row index | |
const randomColIndex = nextVal % 9 |