Skip to content

Instantly share code, notes, and snippets.

@josepmartins
josepmartins / inline_svg_helpers.rb
Last active Jan 7, 2021
SVG inline helpers for Rails
View inline_svg_helpers.rb
# Inline svg from @tomeara https://gist.github.com/tomeara/6515860
def inline_svg(path)
file = File.open("app/assets/images/#{path}", "rb")
raw file.read
end
# Use SVG internal link
def use_svg(clazz)
content_tag(:svg, content_tag(:use, "", { "xlink:href" => '#icon-' + clazz }), class: "icon icon-#{clazz}")
end
@ericdke
ericdke / notification.swift
Created Oct 10, 2014
Deliver an OSX notification with Swift
View notification.swift
func showNotification() -> Void {
var notification = NSUserNotification()
notification.title = "Test from Swift"
notification.informativeText = "The body of this Swift notification"
notification.soundName = NSUserNotificationDefaultSoundName
NSUserNotificationCenter.defaultUserNotificationCenter().deliverNotification(notification)
}
//showNotification()
@njakobsen
njakobsen / live_database_dump.rb
Last active Nov 5, 2021
Live stream a database dump (or any other STDOUT) using Rails 4. Why would you want this? If you have a large database dump and want to avoid storing it in memory as Rails streams it. This allows pipe the dump directly into the http response instead of storing it as a file, sending it, and then deleting it. Let me know what you think! I've teste…
View live_database_dump.rb
class DatabaseController < ApplicationController
def database_dump
database = Rails.configuration.database_configuration[Rails.env]["database"]
send_file_headers!(:type => 'application/octet-stream', :filename => "#{database}_#{Time.now.to_s(:human)}.backup")
pipe = IO.popen("pg_dump '#{database}' -F c")
stream = response.stream
while (line = pipe.gets)
stream.write line
sleep 0.0001 # HACK: Prevent server instance from sleeping forever if client disconnects during download
@suan
suan / gist:6247795
Created Aug 16, 2013
Simple Infinite Array Ruby implementation
View gist:6247795
class InfiniteArray < Array
def initialize(value)
super(1, value)
end
def [](index)
self.first
end
end
@cpjolicoeur
cpjolicoeur / gist:3590737
Created Sep 1, 2012
Ordering a query result set by an arbitrary list in PostgreSQL
View gist:3590737

I'm hunting for the best solution on how to handle keeping large sets of DB records "sorted" in a performant manner.

Problem Description

Most of us have work on projects at some point where we have needed to have ordered lists of objects. Whether it be a to-do list sorted by priority, or a list of documents that a user can sort in whatever order they want.

A traditional approach for this on a Rails project is to use something like the acts_as_list gem, or something similar. These systems typically add some sort of "postion" or "sort order" column to each record, which is then used when querying out the records in a traditional order by position SQL query.

This approach seems to work fine for smaller datasets, but can be hard to manage on large data sets with hundreds (or thousands) of records needing to be sorted. Changing the sort position of even a single object will require updating every single record in the database that is in the same sort group. This requires potentially thousands of wri