Skip to content

Instantly share code, notes, and snippets.

View rskelley9's full-sized avatar

Ryan Kelley rskelley9

View GitHub Profile
@rskelley9
rskelley9 / blocks_ex1.rb
Last active February 21, 2019 08:19
Demonstrate concepts of recursion and blocks
class Array
def my_map
new_arr = []
for el in self
new_arr.push(yield(el))
end
new_arr
end
def my_map!
@rskelley9
rskelley9 / list_parse.rb
Last active July 6, 2018 04:51
Just for fun because I never write recursive methods.
DEFAULT_TIMES_TO_RUN = 1
def build_msg(types_data:{words: [], numbers: []})
msg = "these are the words: #{types_data[:words]}, these are the numbers: #{types_data[:numbers]}"
if types_data[:other] and types_data[:other].class.eql(Array) and types_data[:other].length > 0
msg += ", these are the other elements: #{types_data[:other]}"
end
msg
end
@rskelley9
rskelley9 / data_get.py
Created March 17, 2018 08:14
Download data from a variety of data repositories
import argparse, httplib2, os, re, requests, sys, time;
from datetime import datetime
from tqdm import tqdm
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--season", help="numeric season", type=int)
parser.add_argument("-p", "--path", help="download path")
args = parser.parse_args()
@rskelley9
rskelley9 / steamer_multi.py
Created February 22, 2018 04:39
Download projections in seperate files by position. `python steamer_multi.py '~/Downloads'`
import time;
import os;
import sys;
from selenium import webdriver;
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile;
import glob;
# import pdb; ## debugger
def get_filename(folder_before, folder_after):
change = set(folder_after) - set(folder_before)
@rskelley9
rskelley9 / download_steamer.py
Last active February 22, 2018 04:43
Fangraphs Steamer Projections Downloader V2; run it with `$ python steamer.py '~/Downloads'`
import time;
import os;
import sys;
from selenium import webdriver;
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile;
if len(sys.argv) > 1:
download_path = os.path.expanduser(sys.argv[1]);
else:
download_path = os.path.expanduser('~/Desktop');
@rskelley9
rskelley9 / fg_steamer_download.py
Created February 20, 2018 06:39
Python script for downloading steamer data on FG website.
import time;
from selenium import webdriver;
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile;
profile = FirefoxProfile();
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'text/csv');
driver = webdriver.Firefox(firefox_profile=profile);
driver.get("https://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=steamer&team=0&lg=all&players=0");
driver.find_element_by_link_text('Export Data').click();
@rskelley9
rskelley9 / merge_pdf_v3.rb
Last active October 16, 2017 06:19
Merge pdf script I created that uses flagged command-line args instead of ARGV array.
require 'combine_pdf'
require 'libreconv'
require 'optparse'
soffice_path = "/Applications/LibreOffice.app/Contents/MacOS/soffice"
args = {}
OptionParser.new do | arg |
@rskelley9
rskelley9 / merge_pdf_v2.rb
Last active October 16, 2017 05:44
Second version of merge_pdf script, this will convert files if non pdf file type specified as third arg. OS X only.
require 'combine_pdf'
require 'libreconv'
soffice_path = "/Applications/LibreOffice.app/Contents/MacOS/soffice"
## Default files taken from current working directory
file_path = ARGV[ 0 ] || Dir.pwd
## Default, files saved to desktop
save_path = ARGV[ 1 ] || ENV['HOME'] + '/Desktop/'
@rskelley9
rskelley9 / merge_pdf.rb
Last active October 16, 2017 05:45
A script I wrote to easily merge pdf files into one doc use CombinePDF library.
require 'combine_pdf'
## Default files taken from current working directory
file_path = ARGV[ 0 ] || Dir.pwd
## Default, files saved to desktop
save_path = ARGV[ 1 ] || ENV['HOME'] + '/Desktop/'
file_path = File.join( file_path , "")
save_path = File.join( save_path , "")
@rskelley9
rskelley9 / install_imagemagick.sh
Created October 1, 2017 05:43
Install imagemagick, dependencies using homebrew automatedly.
#!/bin/sh
if [ ! -f "`which brew`" ] ; then
echo "installing homebrew"
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
else
brew update
fi
if brew ls --versions imagemagick > /dev/null; then