Skip to content

Instantly share code, notes, and snippets.


Kyle Carlson kyletcarlson

View GitHub Profile
kyletcarlson / rspec_model_testing_template.rb
Last active Apr 30, 2021
Rails Rspec model testing skeleton & cheat sheet using rspec-rails, shoulda-matchers, shoulda-callbacks, and factory_girl_rails. Pretty much a brain dump of examples of what you can (should?) test in a model. Pick & choose what you like, and please let me know if there are any errors or new/changed features out there. Reddit comment thread: http…
View rspec_model_testing_template.rb
# This is a skeleton for testing models including examples of validations, callbacks,
# scopes, instance & class methods, associations, and more.
# Pick and choose what you want, as all models don't NEED to be tested at this depth.
# I'm always eager to hear new tips & suggestions as I'm still new to testing,
# so if you have any, please share!
# @kyletcarlson
# This skeleton also assumes you're using the following gems:
kyletcarlson / zappos_product_scraper.rb
Last active Jul 15, 2018
Small Ruby script that demonstrates how to use Mechanize to scrape some product details from an array of product URLs from
View zappos_product_scraper.rb
require 'mechanize'
require 'csv'
puts "Product Scraper!!!"
puts ' '
urls = [
kyletcarlson / tweets_controller.rb
Last active Dec 21, 2015
A Ruby on Rails controller action showing how to fetch a group of Tweets/followers/friends & send them to a view. You can also create Tweets with this controller & the Twitter API, but you'll need to ensure your callback URL is correct. Follow the documentation for that.
View tweets_controller.rb
class TweetsController < ApplicationController
before_action :create_client
def index
batch_size = 10
@twitter_handle = "dhh"
@tweets = @client.user_timeline(@twitter_handle).take(batch_size)
@friends = @client.friends(@twitter_handle).take(batch_size)
kyletcarlson / ruby-open-uri-request.rb
Created Dec 9, 2013
4-line Ruby script that uses open-uri to fetch the contents of a URL & displays it in the console. This is the foundation for all web requests, whether to scrape a page, request a JSON response, and more.
View ruby-open-uri-request.rb
require 'open-uri'
# Go fetch the contents of a URL & store them as a String
response = open('').read
# "Pretty prints" the result to look like a web page instead of one long string of HTML
# Print the contents of the website to the console
kyletcarlson / ruby_web_scraping.rb
Created Dec 9, 2013
A Ruby web scraping script that visits a GitHub trending repos page, scrapes the data for the 25 repos, loads them into a CSV, and then reads from the CSV & creates a hash with each repo's data.
View ruby_web_scraping.rb
require 'mechanize'
require 'csv'
# Load up the trending Ruby repos on GitHub from the last month.
url_to_scrape = ""
# Snag the website with Mechanize & parse it into an XML document we can query.
page =
# Set the name of the CSV we'll create & load from.
file = "repo_data.csv"
kyletcarlson / json_response_handling_ruby.rb
Created Dec 11, 2013
Ruby script that uses open-uri to fetch the contents of a JSON endpoint, uses the JSON gem to parse the string into a Ruby array & prints some of the records. This is the foundation for all web API requests, so feel free to use it in the future.
View json_response_handling_ruby.rb
require 'open-uri'
require 'json'
require 'pp'
# Construct the URL we'll be calling
request_uri = 'http://localhost:3000/users.json'
request_query = ''
kyletcarlson / ruby_github_gist_api.rb
Created Dec 11, 2013
A Ruby script demonstrating how to pull Gists from the GitHub Gist API.
View ruby_github_gist_api.rb
# Gem that wraps around the Gist API
require 'activegist'
# GitHub Gist API documentation:
# -
# Set up credentials.
ActiveGist::API.username = "Your GitHub username"
ActiveGist::API.password = "Your GitHub password"
kyletcarlson / ruby_benchmark_examples.rb
Created Dec 14, 2013
Three examples showing three of the main methods of Ruby's Benchmark class that's used to profile your code. Benchmark.measure at the most basic, Benchmark.benchmark allows you to run trials of different code blocks, and Benchmark.bmbm that helps you establish a baseline for your tests.
View ruby_benchmark_examples.rb
require 'benchmark'
require 'bigdecimal/math'
# Set the number of iterations to run. The underscore here is used as a substitute for normal comma so Ruby interprets the number correctly.
iterations = 10
puts "\nCalculating pi #{iterations} times.\n\n"
kyletcarlson / VimMonokai.vim
Created Dec 14, 2013
My Vim color scheme based on Sublime Text's default scheme: Monokai.
View VimMonokai.vim
" Vim color file
" Converted from Textmate theme Monokai Refined using Coloration v0.3.2 (
set background=dark
" highlight clear
highlight Normal guibg=black guifg=white
if exists("syntax_on")
syntax reset
kyletcarlson /
Last active Feb 16, 2021 — forked from xdite/
42 Sweet, sweet things Rails (and Ruby) can do. Wonderful reference.