Skip to content

Instantly share code, notes, and snippets.

View jakeonrails's full-sized avatar

Jake Moffatt jakeonrails

View GitHub Profile
# Assuming all the methods called here also return true/false,
# use the logical composition operators to create a final result
# which can short-circuit if one of the methods fails:
def composed_method
frobulate_widgets and refrobulate_widgets and confribulate_frobulations
end
@jakeonrails
jakeonrails / benchmark.rb
Created November 6, 2012 23:15 — forked from panthomakos/benchmark.rb
Benchmark Your Bundle
#!/usr/bin/env ruby
require 'benchmark'
REGEXPS = [
/^no such file to load -- (.+)$/i,
/^Missing \w+ (?:file\s*)?([^\s]+.rb)$/i,
/^Missing API definition file in (.+)$/i,
/^cannot load such file -- (.+)$/i,
]
@jakeonrails
jakeonrails / robot_user_agents.rb
Created October 15, 2012 21:37 — forked from Sjors/robot_user_agents.rb
Recognize search engines and spammers using user-agents.org
require 'net/http'
require 'xmlsimple'
url = "http://www.user-agents.org/allagents.xml"
xml_data = Net::HTTP.get_response(URI.parse(url)).body
data = XmlSimple.xml_in(xml_data)
agents = data['user-agent'].select{|agent| type = agent["Type"].first; type.include?("R") || type.include?("S")}
agent_names = agents.collect {|agent| agent["String"].first}
@jakeonrails
jakeonrails / xml_parser.rb
Created February 11, 2012 04:23 — forked from kmile/xml_parser.rb
A small nokogiri xml reader DSL.
# A small DSL for helping parsing documents using Nokogiri::XML::Reader. The
# XML Reader is a good way to move a cursor through a (large) XML document fast,
# but is not as cumbersome as writing a full SAX document handler. Read about
# it here: http://nokogiri.org/Nokogiri/XML/Reader.html
#
# Just pass the reader in this parser and specificy the nodes that you are interested
# in in a block. You can just parse every node or only look inside certain nodes.
#
# A small example:
#
<h1>Categories</h1>
<% @categories.each do |category| %>
<ul class="X">
<li>
<h5><%= link_to category.name, category %></h5>
</li>
</ul>
<% end %>