Skip to content

Instantly share code, notes, and snippets.

@Bodacious
Bodacious / Benchmark semver ordering in Postgresql.rb
Last active March 16, 2024 23:01
Benchmarking different SEMVER ordering strategies in PostgreSQL
require 'bundler/inline'
##
# Get dependencies
gemfile do
source 'https://rubygems.org'
gem 'pg'
gem 'activerecord', require: 'active_record'
gem 'benchmark-ips'
gem 'pry'
@Bodacious
Bodacious / Gemfile
Created January 10, 2023 21:10
Demonstrating the anonymous modules when including blocks in scopes
# frozen_string_literal: true
source "https://rubygems.org"
gem "activerecord", github: "bodacious/rails"
gem "sqlite3"
@Bodacious
Bodacious / main.rb
Created June 28, 2022 10:38
Jbuilder named attributes vs `extract!`
require "bundler/inline"
gemfile do
gem "benchmark-ips"
gem "jbuilder"
gem "activesupport", require: ["active_support"]
end
class User
attr_accessor :id, :name, :email, :password, :age, :username
@Bodacious
Bodacious / string.rb
Created September 11, 2020 15:55
Ruby Palindrome String
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 17:00
Monty Hall Problem demonstrated in Ruby
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 June 5, 2017 11:17
Random password generator in Ruby on Rails
# Examples:
#
# @password = RandomPassword.password
#
class RandomPassword
class << self
delegate :password, to: new
end
@Bodacious
Bodacious / app_delegate.rb
Created February 7, 2017 12:47
Empty app delegate
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 February 7, 2017 12:37
RubyMotion Hello World example.
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 October 28, 2016 09:38
Adding gender-specific messages to your rails app with genderize
# 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 October 27, 2016 17:00
SASS script for creating quick colour pallette
$hue: 173;
$first-color: hsl($hue, 100%, 50%);
$second-color: complement($first-color);
.first-color {
background: $first-color;
}
.second-color {
background: $second-color;
}