Links for 2013-01-15 Boulder Ruby meeting
Announcements to rubyonrails-security
- CVE-2012-5664 - SQL Inection Vulnerability
- CVE-2013-0155 - Unsafe Query Generation
- CVE-2013-0156 - Multiple vulnerabilities in parameter parsing in Action Pack
Couldn't find the text of this for a while...
def console!(&block) | |
require 'pry' | |
Pry.config.hooks.send(:hooks).keys. | |
each{|which| Pry.config.hooks.clear(which)} | |
prompt = ">> " | |
Pry.config.prompt = proc{|*a| prompt } | |
block.binding.pry |
A utility inspired by @ahoward that allows screens to be the name of the directory they were spawned from. This is mainly helpful for Terminal/iTerm tabs.
Executing this should rejoin sessions with the same name if they already exist or otherwise create them.
ns
)to_map
A to_map
function is very useful when you want to convert models to PLAIN OLD DATA. Think presenters, conductors, APIs, JSON, etc...
Add this monkey-patch to your Rails project and call it on your model instances.
Mongoid.database.add_stored_function "sequence", <<-__ | |
function(name) { | |
var ret = db.counters.findAndModify({ query: { _id: name}, update: { $inc : { next: 1}}, "new" :true, upsert: true}); | |
return ret.next; | |
} | |
__ | |
class Sequence | |
include Mongoid::Fields::Serializable |
/* | |
As of version 1.1.2, Propane will load and execute the contents of | |
~Library/Application Support/Propane/unsupported/caveatPatchor.js | |
immediately following the execution of its own enhancer.js file. | |
You can use this mechanism to add your own customizations to Campfire | |
in Propane. | |
Below you'll find two customization examples. |
# LoremHelper - a placeholder content generator for Webby | |
# ======================================================= | |
# based on Travis Dunn's Frank - lorem.rb: | |
# - https://github.com/blahed/frank/blob/master/lib/frank/lorem.rb | |
# - original license: https://github.com/blahed/frank/blob/master/LICENSE | |
# | |
# LoremHelper creates placeholder content for your Webby [http://webby.rubyforge.org/] projects. | |
# It's great for quickly prototyping/wireframing a site. | |
# | |
# USAGE: |
#Kind of like tail -f -n1 | |
db = Mongo::Connection.new(mongo_hostname).db(mongo_dbname) | |
coll = db.collection(mongo_collection) | |
start_count = coll.count | |
tail = Mongo::Cursor.new(coll, :tailable => true, :order => [['$natural', 1]]).skip(start_count- 1) | |
loop do | |
if doc = tail.next_document | |
puts doc | |
else | |
sleep 1 |