Skip to content

Instantly share code, notes, and snippets.

@ggarnier
ggarnier / capybara_list_requested_domains.rb
Created August 5, 2015 19:10
Capybara - list requested domains
page.driver.network_traffic.map do |req|
req.url.gsub(/^(https?:\/\/[^\/]+)\/.*$/, '\1')
end.uniq
@ggarnier
ggarnier / textile_to_md.sed
Created January 13, 2015 16:00
textile_to_md.sed
# sed -f textile_to_md.sed original.textile > destination.md
s/"\([^"]*\)":\([^\. ]*\.html\)/[\1](\2)/g
s/^h3[^.]*\./###/
s/^h4\./####/
s/^h5\./#####/
s/^<js>$/~~~json/
s/^<\/js>$/~~~/
s/^<plain>$/~~~sh/
s/^<\/plain>$/~~~/
@ggarnier
ggarnier / textile_to_markdown.rb
Created June 3, 2014 18:09
Textile to Markdown
def process_file oldfilename
markdown_content = textile_to_markdown(File.read(oldfilename))
filename = oldfilename.split("/").last.split(".").first.gsub("-", "_")
File.open("doc_src/content/#{filename}.md", "w") do |f|
f.write <<-CONTENT
---
title: #{filename.capitalize}
group: Base
---
@ggarnier
ggarnier / sum_time_shares.rb
Last active August 29, 2015 13:57
Calculates sum of a list of time shares in format min:sec
# str = "1:42 + 07:48"
# output = "9:30"
def sum_time_shares(str)
values = str.gsub(" ", "").split("+")
total_seconds = values.reduce(0) do |sum, value|
minutes, seconds = value.split(":")
sum += (60 * minutes.to_i) + seconds.to_i
end
@ggarnier
ggarnier / class_variables.rb
Last active August 29, 2015 13:56
Class variables and class instance variables in Ruby
class Superclass
@@var1 = "var 1 Superclass"
@var2 = "var 2 Superclass"
def self.var1
@@var1
end
def self.var2
@var2
@ggarnier
ggarnier / add_date_to_posts.rb
Created February 4, 2014 21:30
Add date to Octopress posts
Dir.glob("source/_posts/*.markdown").each do |filename|
formatted_date = filename.split("/").last[0..9]
puts "Adding date #{formatted_date} to file #{filename}"
lines = []
IO.readlines(filename).map do |line|
lines << line
lines << "date: #{formatted_date}" if line =~ /^title: /
end
@ggarnier
ggarnier / html2markdown.rb
Created December 18, 2013 14:46
html2markdown
text.gsub(/<a href="([^"]*)">([^<]*)<\/a>/, '[\2](\1)')
@ggarnier
ggarnier / ordering.rb
Created November 21, 2013 18:03
Ordering an array in Ruby using 2 sorting criterias
# Ordering a list by field1 in descending order. If two elements have the same value, order by field2 in ascending order
list.sort do |a, b|
comp = (b.field1 <=> a.field2)
comp.zero? ? (a.field2 <=> b.field2) : comp
end
@ggarnier
ggarnier / private.js
Last active December 25, 2015 16:39
Javascript private functions
// Reference: http://javascript.crockford.com/private.html
Test = function() {
function private() {
return "private";
}
return {
public: function() {
return private();
}
@ggarnier
ggarnier / check-git-status.sh
Created June 11, 2013 22:36
Checks the status for all my git projects
#!/bin/bash
# check-git-status.sh - Checks the status for all my git projects
# Usage: check-git-status.sh <main projects directory>
if [ -z "$1" ]; then
mainDir="$HOME/Projects"
else
mainDir="$1"
fi