Skip to content

Instantly share code, notes, and snippets.


Stefan Wrobel swrobel

View GitHub Profile
swrobel /
Last active Aug 29, 2015
Send OpsWorks log files to Papertrail using the remote_syslog gem
  1. Add remote_syslog to your Gemfile
  2. Add papertrail.rake to lib/tasks
  3. Add remote_syslog.yml to config/
  4. Add before_restart.rb to deploy/
  5. Set the PAPERTRAIL_PORT ENV var to the one provided by Papertrail for your system

Inspiration from Scott W. Bradley

swrobel /
Last active Aug 29, 2015
Precompile assets locally but keep the manifest files in source control

This setup will allow you to precompile assets locally and keep them separated depending on the environment. To precompile assets locally run RAILS_ENV=production COMPILE_ASSETS=1 rake assets:precompile. Using an ENV var like this removes the need for having therubyracer or some other javascript engine on your server instances since they aren't actually running the precompilation task.

View Mou Twilight+.txt
foreground: F8F8F8
background: 141414
caret: A7A7A7
background: 33363a
foreground: 5F5A60
View responsive-mixin.scss
$phone: '(max-width: 480px)';
$tablet-portrait: '(max-width: 767px)';
$tablet-landscape-desktop: '(min-width: 768px) and (max-width: 979px)';
$large-desktop: '(min-width: 1200px)';
$non-retina: 'screen and (-webkit-max-device-pixel-ratio: 1)';
$retina: 'screen and (-webkit-min-device-pixel-ratio: 2)';
@mixin respond-to($media) {
@media #{$media} {
swrobel /
Last active Dec 16, 2015
Toggle airport depending on wired network status. Works on Retina Macbooks using thunderbolt ethernet adapter (en3). Airport should be en0.
  1. sudo mv /Library/Scripts/
  2. sudo chmod 755 /Library/Scripts/
  3. sudo mv com.mine.toggleairport.plist /System/Library/LaunchAgents/
  4. sudo chown root:wheel /System/Library/LaunchAgents/com.mine.toggleairport.plist
  5. sudo launchctl load /System/Library/LaunchAgents/com.mine.toggleairport.plist

The script should run on startup and give you growl notifications when airport status is changed if you have GrowlNotify installed

Credit to

swrobel / spree2_orders_by_product.sql
Last active Dec 21, 2015
Number of orders by product in Spree 2.0+
View spree2_orders_by_product.sql
sum(quantity) AS num_sold
FROM spree_orders o
JOIN spree_line_items li ON o.ID = li.order_id
JOIN spree_variants v ON li.variant_id =
JOIN spree_stock_items i ON = i.variant_id
JOIN spree_products p ON v.product_id =
WHERE o.state = 'complete'
View default_scope_failing_tests.rb
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
gemfile(true) do
source ''
gem 'rails', github: 'rails/rails'
swrobel / range_within_bounds.rb
Created Apr 7, 2016
Return a range that is bounded by min & max given, in Ruby
View range_within_bounds.rb
def range_within_bounds(range, min, max)
min ||= range.min
max ||= range.max
[range.min, min].max .. [range.max, max].min
swrobel / gemfile_changelog.rb
Created Mar 23, 2012
Get Changelogs for outdated gems in Gemfile
View gemfile_changelog.rb
#!/usr/bin/env ruby
def changelog_for_gem(gem)
changelogs = `bundle exec gem contents #{gem}`.lines.grep(/history|changelog|news/i)
if changelogs.empty?
puts "No changelog found for gem #{gem}"
return nil
swrobel / dedup-imovie-library
Last active Sep 30, 2017 — forked from kabadisha/dedup-imovie-library
When you import movies into iMovie 10 libraries, the file is always copied, wasting space and hindering editability. This script replaces the copy with a hardlink, reclaiming disk space.
View dedup-imovie-library
#!/usr/bin/env ruby
# Usage: dedup-imovie-library LIBRARY ORIGINALS
# Goes through an iMovie 10 library and replaces all the "Original Media" with
# symlinks to the actual original media, in order to conserve disk space. Note
# that because they're symlinks, if the path to the originals changes (e.g. you
# rename the external drive they are on) then the links will be broken.
# This assumes you've already imported the files into iMovie and waited for them