Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / 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 / 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 / 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 / block_test.rb
Created August 6, 2015 15:58
Ruby block has a different priority when using "do..end" or "{}"
def test1(params)
p "test1 #{params}"
end
def test2(&block)
if block_given?
p "test2 with block"
yield
else
p "test2 without block"
@ggarnier
ggarnier / find_replace.sed
Last active September 3, 2015 18:28
Find/replace in multiple files
oldstring="describe"
newstring="RSpec.describe"
path=path/to/files
grep -rl $oldstring $path/* | xargs sed -i '' s/$oldstring/$newstring/g
#!/usr/bin/env ruby
#
# Put this script in your PATH and download from onemanga.com like this:
# onemanga_downloader.rb Bleach [chapter number]
#
# You will find the downloaded chapters under $HOME/Documents/OneManga/Bleach
#
# If you run this script without arguments, it will check your local manga downloads
# and check if there are any new chapters
#
@ggarnier
ggarnier / tga-to-jpg.sh
Created December 10, 2010 13:34
Batch conversion from tga to jpg
#!/bin/bash
# Batch conversion from tga to jpg
# Author: Guilherme Garnier - http://blog.guilhermegarnier.com
# Adapted from:
# http://linux.strangegamer.com/index.php?title=Converting_A_directory_of_TGA%27s_To_JPG
# http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")