Skip to content

Instantly share code, notes, and snippets.

@prepor
prepor / autogit_for_rails.rb
Created February 18, 2009 06:12
Autogit for Rails and plugins
# In boot.rb
require File.join RAILS_ROOT, 'config/autogit_libs.rb'
require "railties/lib/initializer"
Rails::Initializer.run(:set_load_path)
# Rails.boot!
class AutogitPluginLocator < Rails::Plugin::Locator
def plugins
From http://www.scribd.com/doc/23548865/Debugging-Ruby
lsof
list open files
lsof -nPp <pid>
-n
Inhibits the conversion of network numbers to host names for
network files.
-P
class FixedStack < Array
attr_accessor :max_size
def initialize(max_size, *args)
self.max_size = max_size
super(*args)
end
def push(*args)
super
self.replace self.last(max_size) if size > max_size
# MogileFS client backend on EventMachine
# req = mogilefs_client.backend.get_hosts
# req.callback { |data| puts data }
module EMogileFS
@@connections = {}
class << self
def <<(request)
@prepor
prepor / vkontakte.rb
Created January 24, 2010 01:57
Little wrapper for vkonrakte.ru secure API.
# VKRequest.get :method => 'secure.getAppBalance'
require 'digest/md5'
require 'open-uri'
class VKRequest
SECURE_SECRET = 'ololo'
API_ID = 1807324
API_SERVER = 'http://api.vkontakte.ru/api.php'
DEFAULT_FORMAT = 'json'
VERSION = '2.0'
@prepor
prepor / amqp_client_with_redirect.rb
Created May 24, 2010 15:04
amqp client with redirect.
# Support of amqp redirect method. It uses in amqp-clusters.
# For use: AMQP.client = AmqpClient
module AmqpClient
def process_frame frame
if mq = channels[frame.channel]
mq.process_frame(frame)
return
end
@prepor
prepor / cirqle_queue_and_fifo.rb
Created June 4, 2010 16:41
Simple ruby implementation of Cirqle Queue and FIFO
class CircleQueue
include Enumerable
class Head
attr_accessor :first, :last
def initialize
self.first = self
self.last = self
end
@prepor
prepor / rss_renderer.rb
Created June 20, 2010 14:08
RSS renderer for rails3
# Usage:
respond_to :rss, :only => [:index]
def index
@deals = Deal.by_city(@city).limit(15)
respond_with(@deals) do |format|
format.rss { render :rss => @deals, :title => "KupiKon", :item => { :title => :title, :description => :description }}
end
end
@prepor
prepor / em_chain.rb
Created September 29, 2010 18:13
Simple EM rowly and parellel chains
class EMChain
attr_accessor :queue, :complete_clb, :item_block
attr_accessor :in_progress_queue
attr_accessor :max
def initialize(&config_blk)
self.queue = []
self.in_progress_queue = {}
config_blk.call self if config_blk
end
@prepor
prepor / autogist.rb
Created November 10, 2010 19:25
Gist auto fetcher and requirer
require 'pathname'
require 'open-uri'
def require_gist(number, file, options = {})
AutoGist::Gist.new(number, file, options).setup
end
# TODO Add logs
# TODO Reload gists (especially without ref)