Solving the Firehose Javascript challenge Celsius to Fahrenheit with tests.
Before we begin, there is a piece of information missing from the challenge.
When you run npm install --save readline-sync
, you'll likely see an error like this:
# Attempt a certain action several times before giving up | |
# | |
# Usage: `attempt(3.times, rescue: RuntimeError) do ... end` | |
# | |
def attempt(times, options = {}) | |
times = times.is_a?(Enumerator) ? times.max : times.to_i | |
begin | |
attempt ||= 0 | |
puts "Checking (attempt #{attempt+1})..." |
require 'vessel' | |
class AdCrawler < Vessel::Cargo | |
GAM_GET_SLOTS_JS = <<~JS.gsub(/\n/, '') | |
googletag.pubads().getSlots().map(slot => ({ | |
adUnitPath: slot.getAdUnitPath(), | |
slotElementId: slot.getSlotElementId(), | |
sizes: slot.getSizes().map(size => | |
typeof size == 'string' ? [0, 0] : [size.getWidth(), size.getHeight()]) | |
})) |
require 'capybara' | |
require 'capybara/apparition' | |
require 'forwardable' | |
Capybara.threadsafe = true | |
Capybara.register_driver :apparition do |app| | |
Capybara::Apparition::Driver.new(app, headless: true, | |
js_errors: false, | |
browser_logger: nil) |
#/usr/bin/env bash | |
# MIT © Sindre Sorhus - sindresorhus.com | |
# git hook to run a command after `git pull` if a specified file was changed | |
# Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`. | |
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" | |
check_run() { | |
echo "$changed_files" | grep --quiet "$1" && eval "$2" |
def countwovels(str) | |
for vowel in 'aeiouAEIOU'.chars | |
count = str.count(vowel) | |
if count == 1 | |
puts "#{vowel} appears #{count} time." | |
elsif count >= 2 | |
puts "#{vowel} appears #{count} times." | |
end | |
end | |
end |
Solving the Firehose Javascript challenge Celsius to Fahrenheit with tests.
Before we begin, there is a piece of information missing from the challenge.
When you run npm install --save readline-sync
, you'll likely see an error like this:
class Hello | |
def greeting(name) | |
"Hello, #{name}!" | |
end | |
end |
module Anagram | |
def self.match(base, candidates) | |
base_fingerprint = fingerprint(base) | |
candidates.select { |c| fingerprint(c) == base_fingerprint } | |
end | |
private | |
def self.fingerprint(string) | |
string.downcase.chars.sort |
defmodule Johnann do | |
def john(n) when n >= 1 do | |
john_and_ann(n)[:john] |> Map.values | |
end | |
def ann(n) when n >= 1 do | |
john_and_ann(n)[:ann] |> Map.values | |
end | |
def john(n) | |
john_and_ann(n)[:john] | |
end | |
def ann(n) | |
john_and_ann(n)[:ann] | |
end | |
def sum_john(n) | |
john(n).reduce(:+) |