Skip to content

Instantly share code, notes, and snippets.

View elliotcm's full-sized avatar

Elliot Crosby-McCullough elliotcm

View GitHub Profile
@elliotcm
elliotcm / imdb_rank.rb
Created March 6, 2011 19:50
Get the top 10 films in your Movies folder ranked by IMDB rating. It ain't pretty, but it works.
require 'rubygems'
require 'nokogiri'
require 'open-uri'
class IMDBRank
def self.rank(directory, number_to_return=10)
Dir["#{File.expand_path(directory)}/*.{avi,mp4,m4v}"].sort.map do |filepath|
File.basename(filepath) =~ /(.*?)(?:\s+.(\d{4}).)?\....$/
new($1, $2)
end.reject { |film| film.score.nil? }.
class Fixnum
def to_roman_numerals
tens, remainder = self.divmod(10)
fives, units = remainder.divmod(5)
('X'*tens) + ('V'*fives) + ('I'*units)
end
end
require 'fixnum'
describe Fixnum, 'when converting to Roman numerals' do
context "up to 5" do
it "represents units with I" do
1.to_roman_numerals.should == 'I'
2.to_roman_numerals.should == 'II'
3.to_roman_numerals.should == 'III'
end
@elliotcm
elliotcm / littlejohn.rb
Created December 28, 2010 22:14
Scrape the Daily Mail website for Richard Littlejohn headlines.
require 'rubygems'
require 'nokogiri'
require 'open-uri'
class Archive
def initialize(starting_url)
@pages = [first_page = Page.new(starting_url)]
add_links_from(first_page)
end
def read_only_collection(section_name)
get "/#{section_name}" do
haml "#{section_name}/index".to_sym
end
get "/#{section_name}/:object_name" do
begin
haml "#{section_name}/#{params[:object_name]}".to_sym
rescue Errno::ENOENT
throw :halt, [404, "Not found"]
@elliotcm
elliotcm / gist:1a6f9159448d66dc97bb
Last active August 29, 2015 14:03
Grab panopticon slugs for unpublished documents for Marine Management Organisation
unsub_info = [
["DetailedGuide", "harbour-development-and-the-law"],
["DetailedGuide", "disposal-of-dredged-material-at-sea-regulations-and-controls"],
["DetailedGuide", "offshore-cables-and-pipelines"],
["DetailedGuide", "marine-construction-and-coastal-protection"],
["DetailedGuide", "licences-for-offshore-renewable-energy-installations"],
["DetailedGuide", "european-fisheries-fund-fishing-industry-common-interests"],
["DetailedGuide", "european-fisheries-fund-projects"],
["DetailedGuide", "investing-in-aquaculture"],
["DetailedGuide", "investing-on-board-your-fishing-vessel"],
{"index":{"_id":"jobs-exact","_type":"best_bet"}}
{"exact_query":"jobs","details":"{\"best_bets\":[{\"link\":\"/jobs1\",\"position\":1},{\"link\":\"/jobs2\",\"position\":2}],\"worst_bets\":[]}"}
{"index":{"_id":"vias-exact","_type":"best_bet"}}
{"exact_query":"vias","details":"{\"best_bets\":[],\"worst_bets\":[{\"link\":\"/it-is-a-link\"}]}"}
@elliotcm
elliotcm / gist:11285693
Last active August 29, 2015 14:00
Devops existing specialist sector tag routes in Panopticon
class SpecialistSectorTagForm; attr_writer :tag; end
Tag.where(tag_type: 'specialist_sector').each do |tag|
tag_form = SpecialistSectorTagForm.new({})
tag_form.tag = tag
tag_form.save
puts "Successfully saved tag #{tag.tag_id}"
end