Skip to content

Instantly share code, notes, and snippets.

View mrdougwright's full-sized avatar
🏠
Working from home

Doug Wright mrdougwright

🏠
Working from home
View GitHub Profile
@mrdougwright
mrdougwright / rectangle_intersect_exercise.rb
Created December 5, 2016 19:26
rectangular intersection
# write an algorithm to find the intersection of two users' love rectangles.
def intersection(rectangle1, rectangle2)
rect_hash1 = calc_space(rectangle1)
rect_hash2 = calc_space(rectangle2)
intersect_hash = overlap(rect_hash1, rect_hash2)
convert_to_rectangle(intersect_hash)
end
def calc_space(rectangle)
// create anagram db
// str = "care race bear face heart earth etc"
function sortJoin(word) {
return word.split('').sort().join('')
}
function anagram(str){
let words = str.split(' ')
let obj = {}
words.forEach(function(w) {
@mrdougwright
mrdougwright / flatten_array.rb
Created February 16, 2017 04:50
Flatten an array of an arbitrary amount of arrays.
def make_flat(arr, flat_arr=[])
arr.each do |el|
el.is_a?(Array) ? make_flat(el, flat_arr) : flat_arr.push(el)
end
flat_arr
end
@mrdougwright
mrdougwright / rails_fetch.rb
Last active May 30, 2017 19:29
Rails Fetch
def fetch(name, options = nil)
if block_given?
options = merged_options(options)
key = namespaced_key(name, options)
#code omitted
end
def expanded_key(key) # :nodoc:
return key.cache_key.to_s if key.respond_to?(:cache_key)
case key
when Array
if key.size > 1
key = key.collect{|element| expanded_key(element)}
else
key = key.first
end
@mrdougwright
mrdougwright / elixir-basics.md
Last active February 18, 2018 03:17
Elixir basics

Elixir

Setup

Installation

$ brew update
$ brew install erlang
$ brew install elixir
@mrdougwright
mrdougwright / snakeit.rb
Created July 20, 2018 18:42
snake maker
def snakeit(sentence)
sentence.split.map do |word|
word.split("").map do |letter|
up_or_down(letter)
end.join()
end.join(" ")
end
def up_or_down(letter)
random_bool(letter) ? letter.upcase : letter.downcase
$ iex
> :ets.new(:table, [:named_table])
@mrdougwright
mrdougwright / rps.exs
Created September 6, 2019 23:25
rock, paper, scissors
# Rock, Paper, Scissors
# n = number of players
# players = string of letters "RPSPSSR"
defmodule RPS do
@winners %{"R" => "S", "S" => "P", "P" => "R"}
def find_winners(n, players) do
chars = String.split(players, "", trim: true)
const update = (items) => {
items.map(update_item)
}
const update_item = (item) => {
switch (item.name) {
case "Sulfuras, Hand of Ragnaros":
return item
break
case "Aged Brie":