Skip to content

Instantly share code, notes, and snippets.

View adamcrown's full-sized avatar

Adam Crownoble adamcrown

View GitHub Profile
@adamcrown
adamcrown / etc-hosts
Last active August 29, 2015 14:01
/etc/hosts file for Biola web servers
10.200.160.83 apps.static1.prod.biola.edu
10.200.160.83 career.static1.prod.biola.edu
10.200.160.83 wireless.static1.prod.biola.edu
10.200.160.83 www.static1.prod.biola.edu
10.200.160.246 academics.ruby2.staging.biola.edu
10.200.160.246 answers.ruby2.staging.biola.edu
10.200.160.246 api.ruby2.staging.biola.edu
10.200.160.246 apps.ruby2.staging.biola.edu
10.200.160.246 forms.ruby2.staging.biola.edu
@adamcrown
adamcrown / log.rb
Created June 4, 2014 15:45
Easy global log for Ruby
# Usage:
# Log.info 'done'
# Log.debug @var.inspect
# Log.error 'OH NOES!!!1'
# etc.
module Log
def self.method_missing(meth, *args, &block)
if logger.respond_to? meth
logger.send meth, *args, &block
@adamcrown
adamcrown / Gemfile
Last active August 29, 2015 14:05
Simple static asset serving rack app
source 'https://rubygems.org'
gem 'rack'
@adamcrown
adamcrown / add_netid_to_prod_center_accounts
Created January 22, 2015 20:12
Add NetIDs to CSV for production center accounts
#!/usr/bin/env ruby
script_name = File.basename(__FILE__)
file_path = ARGV[0]
abort "No input CSV file provided. Example: #{script_name} ./prod_center_accounts.csv" if file_path.nil?
abort 'File must have a .csv extension' unless file_path =~ /\.csv\Z/
new_file_path = file_path.gsub(/\.csv\Z/, '_with_netids.csv')
@adamcrown
adamcrown / gist:662782
Created November 4, 2010 17:11
Minecraft server init file
We couldn’t find that file to show.
@adamcrown
adamcrown / time_string_validator.rb
Created May 8, 2012 23:40
Rails validator for time strings
class TimeStringValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
require 'chronic'
record.errors[attribute] << "doesn't seem to be a valid time" unless Chronic.parse(value)
end
end
@adamcrown
adamcrown / uri_exists_validator.rb
Created May 8, 2012 23:42
Rails validator for URI existence
# Original credits: http://blog.inquirylabs.com/2006/04/13/simple-uri-validation/
# HTTP Codes: http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTPResponse.html
require 'net/http'
class UriExistsValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
begin # check header response
url = URI.parse(value)
request = Net::HTTP.new(url.host, url.port)
response = request.request_head(url.path.empty? ? '/' : url.path)
@adamcrown
adamcrown / relative_uri_validator.rb
Created May 10, 2012 19:19
Relative URI Validator
require 'uri'
class RelativeUriValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
begin
unless URI.parse(value).relative?
record.errors[attribute] << 'is not a relative URL'
end
rescue URI::InvalidURIError => error
record.errors[attribute] << 'is not a valid URL'
@adamcrown
adamcrown / absolute_uri_validator.rb
Created May 10, 2012 19:17
Absolute URI validator
require 'uri'
class AbsoluteUriValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
begin
unless URI.parse(value).absolute?
record.errors[attribute] << 'is not an absolute URL'
end
rescue URI::InvalidURIError => error
record.errors[attribute] << 'is not a valid URL'
@adamcrown
adamcrown / validation_helpers.rb
Created May 10, 2012 19:24
RSpec Rails Validation Helper
# Examples:
# test_valid_attribute Link, :url => 'http://example.com'
# test_invalid_attribute Link, :url => 'OH NOES!!!1!'
module ValidationHelpers
def test_valid_attribute(model, attr_val_hash)
test_attribute(:valid, model, attr_val_hash)
end
def test_invalid_attribute(model, attr_val_hash)