Skip to content

Instantly share code, notes, and snippets.

Avatar

Stefan Wrobel swrobel

View GitHub Profile
@swrobel
swrobel / copy_db.sql
Created Mar 23, 2012
MySQL script to copy from one database to another in pure SQL
View copy_db.sql
DELIMITER $$
DROP PROCEDURE IF EXISTS `CopyDB` $$
CREATE PROCEDURE `CopyDB` (sourceDB VARCHAR(64),targetDB VARCHAR(64))
TheStoredProcedure:BEGIN
DECLARE found_count,ndx,ndx_last INT;
DECLARE sqlcmd VARCHAR(1024);
SELECT COUNT(1) INTO found_count
FROM information_schema.tables
@swrobel
swrobel / finders.rb
Created Apr 11, 2020
Generic finders for a rails base controller
View finders.rb
def model
@model ||= controller_name.classify.constantize
end
def record
@record ||= records.find(params[:id])
end
def records
@records ||= policy_scope(model) # Requires Pundit
@swrobel
swrobel / gist:77626ff3d4967ca65c3028dcb336d57a
Last active Nov 14, 2019
Rails 6.0 time zones as TZInfo identifiers
View gist:77626ff3d4967ca65c3028dcb336d57a
ActiveSupport::TimeZone.all.group_by(&:formatted_offset).each {|offset| puts "### UTC #{offset[0]}"; offset[1].each {|tz| puts "* #{tz.tzinfo.identifier}"}; puts "\n"};nil

UTC -11:00

  • Pacific/Pago_Pago
  • Pacific/Midway

UTC -10:00

  • Pacific/Honolulu
@swrobel
swrobel / bench.rb
Created Aug 3, 2019
Ruby memoization gem benchmarks
View bench.rb
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org"
gem 'benchmark-ips'
gem 'benchmark-memory'
gem 'memo-it'
gem 'memoist'
gem 'memery'
@swrobel
swrobel / spree_1.3.3_to_2.0.4.md
Last active Dec 18, 2018
HOWTO: Upgrade Spree 1.3.3 to 2.0.4
View spree_1.3.3_to_2.0.4.md

HOWTO: Upgrade Spree 1.3.3 to 2.0.4

These steps were sufficient to upgrade Cult Cosmetics to Spree 2.0.4 from 1.3.3. Here are some details on our environment.

  • We only have single-variant products
  • We are not making use of stock locations (single warehouse)
  • Frontend entirely overridden w/ custom bootstrap layout
  • Braintree gateway
  • Rails 3.2.14
  • Upgraded from Ruby 1.9.3-p448 to 2.0.0-p247 in the process (no issues)
@swrobel
swrobel / README.md
Last active May 25, 2018 — forked from denvazh/README.md
Scheduled update for homebrew
View README.md

Scheduled updates for homebrew

This two launchdaemon scripts provide scheduled updates and upgrade for homebrew packages.

It will run in the following way:

  • brew update every day at 12:10
  • brew upgrade every day at 12:20

How to install

@swrobel
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
@swrobel
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
end
@swrobel
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
end
View default_scope_failing_tests.rb
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rails', github: 'rails/rails'