Skip to content

Instantly share code, notes, and snippets.

Avatar

Gavin Morrice Bodacious

View GitHub Profile
@Bodacious
Bodacious / string.rb
Created Sep 11, 2020
Ruby Palindrome String
View string.rb
class String
def palindrome?
clean_string = self.gsub(/[^\w]/, '').downcase
clean_string == clean_string.reverse
end
end
puts "madam".palindrome? # => true
puts "racecar".palindrome? # => true
puts "madam, . ".palindrome? # => true
puts "02/02/2020".palindrome? # => true
@Bodacious
Bodacious / monty_hall.rb
Created May 31, 2018
Monty Hall Problem demonstrated in Ruby
View monty_hall.rb
class Game
attr_accessor :doors
attr_reader :correct_door
def initialize(door_count: )
chosen_door = (1..door_count).to_a.sample
@doors = door_count.times.map.with_index do |d, i|
Door.new(i+1 == chosen_door)
end
@correct_door = @doors.detect(&:correct?)
end
@Bodacious
Bodacious / random_password.rb
Last active Jun 5, 2017
Random password generator in Ruby on Rails
View random_password.rb
# Examples:
#
# @password = RandomPassword.password
#
class RandomPassword
class << self
delegate :password, to: new
end
View app_delegate.rb
class AppDelegate
def window
@window ||= UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
end
def application(application, didFinishLaunchingWithOptions:launchOptions)
window.rootViewController = UIViewController.alloc.init
window.makeKeyAndVisible
true
@Bodacious
Bodacious / app_delegate.rb
Created Feb 7, 2017
RubyMotion Hello World example.
View app_delegate.rb
class AppDelegate
def hello_world_label
@hello_world_label ||= begin
frame = CGRectMake(20,200,280,40)
label = UILabel.alloc.initWithFrame(frame)
label.text = "Hello world"
label.textColor = UIColor.whiteColor
label.textAlignment = UITextAlignmentCenter
label
@Bodacious
Bodacious / example 1.rb
Created Oct 28, 2016
Adding gender-specific messages to your rails app with genderize
View example 1.rb
# Since Sarah is the object of this sentence
"Sarah is a new member, why not send #{@sarah.object} a message?"
@Bodacious
Bodacious / sass.sass
Created Oct 27, 2016
SASS script for creating quick colour pallette
View sass.sass
$hue: 173;
$first-color: hsl($hue, 100%, 50%);
$second-color: complement($first-color);
.first-color {
background: $first-color;
}
.second-color {
background: $second-color;
}
@Bodacious
Bodacious / README.md
Last active May 13, 2016
How to find an average value, without having to store every data point
View README.md

How to find an average value, without having to store every data point

This was a solution to a problem I was trying to solve on my webiste: how can I arrive at an average value over time, when new data is being provided, without having to store every datum.

I wrote this code to prove to myself that I wasn't crazy, and that this was indeed a valid way to calculate the mean.

@Bodacious
Bodacious / user.rb
Last active Feb 2, 2016
Sometimes I don't know why I bother writing comments in Ruby code...
View user.rb
# It's the class for users, silly.
class User
# Ummm, initializes a new user
def initialize(args)
@first_name = args[:first_name]
@last_name = args[:last_name]
end
# :|
@Bodacious
Bodacious / integer.rb
Created Dec 9, 2015
Another approach to fibonacci in Ruby
View integer.rb
class Integer
# PHI - Some greek number
PHI = Rational(1836311903,1134903170).to_f
# Inverse of 1/PHI
I_PHI = -Rational(1, PHI).to_f
# Square root of 5
SQRT_5 = 5 ** 0.5