Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker

Standup 2/17/11: The awesome $.widget.bridge, Devise 1.1.6, Resetting a jQuery widget, Cookie-less sessions in Rails, CSS3 flexible box model

Pivotal Labs
Thursday, February 17, 2011

Ask for Help

“Is there any way to do cookie-less sessions in Rails?”

Josh Susser mentioned Rails used to support this (by encoding the session ID in all links like PHP can do) but no longer offers this feature and may try to fight your attempts to do it.

This pattern is discouraged because links which are shared with someone else through copy-and-paste would effectively log them in as that user. Very dangerous.

“Is there any way to take an element widgetized by a jQuery plugin and reinitialize everything (i.e. call the initializer again as if it’s an untouched element)?”

jQuery plugins ultimately do lower-level, destructive modifications to the DOM so, unless the plugin supports some kind of resetting, there’s no jQuery feature to do this directly. You can do a reset at the application layer through something like this:

var unmodified = $("#overlay").clone();
$("#overlay").overlay();
$("#overlay").replaceWith(unmodified);
$("#overlay").overlay();

Interesting Things

  • Use jQuery UI’s $.widget.bridge to create new $.fn widget functions that wrap a more object-oriented Javascript function.

Here is an example:

var widget = function(options, element){
    this.name = "ACME Widget #42";
    this.options = options;
    this.element = element;
};

widget.prototype = {
    wizbang: function(){
        console.log("wizbang called!");
    },
    _secret_sauce: function(){
        console.log("Protect me jQuery UI!")
    }
};

$.widget.bridge("acme_widget", widget);
var widget = $("#victim").acme_widget();

widget.data("acme_widget").name;       // => "ACME Widget #42"
widget.acme_widget("wizbang"); // => "wizbang called!"

widget.acme_widget("_secret_sauce"); // Just returns #victim, does not execute _secret_sauce.

For more information, see this blog post.

  • Devise 1.1.6 has been released, fixing a security hole and a compatibility issue with versions of Rails earlier than 3.0.4. More Info

  • You can use the new CSS3 “flexible box model” to get Tracker-like panes. It works only in modern browsers (sorry IE, you’re no longer “modern”).

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Add New Comment Cancel reply

Your email address will not be published.

Pivotal Labs

Pivotal Labs

Recent Posts

  • Does the set of all sets contain itself?
  • Standup 3/8/2012
  • Standup 3/7/2012
Subscribe to Pivotal's Feed

Author Topics

riddles (1)
agile (167)
capistrano (2)
rails (26)
movember (1)
git (10)
railsdoc (1)
object-design (1)
bdd (3)
cucumber (3)
linkedin (1)
oauth (1)
ruby (17)
tdd (2)
lvh.me (1)
rails 3.1.1 (1)
selenium (6)
homebrew (1)
mysql (5)
rvm (1)
sproutcore (1)
paperclip (2)
pry (1)
amazon (1)
heroku (1)
rails3 (2)
jasmine (3)
design (3)
process (12)
productivity (8)
learning (1)
olin (1)
migrations (2)
mongodb (2)
devise (2)
javascript (13)
rubymine (4)
ipad (1)
whurl (1)
head.js (1)
pairing (2)
tools (4)
pair programming (1)
rspec (10)
rspec2 (1)
ruby19 (1)
incubation (3)
startup (5)
api (1)
presenter (1)
vanna (1)
pivotal tracker (5)
capybara (1)
fakeweb (1)
webmock (1)
intern (1)
ruby on rails (25)
meetup (1)
textmate (1)
testing (20)
solr (4)
nyc-standup (11)
community (1)
opensource (3)
activerecord (4)
chrome (1)
mp4 (1)
activeresource (1)
flash (3)
neo4j (1)
nginx (1)
rsoc (1)
meta programming (1)
agile standup (7)
government (3)
webos (4)
xss (1)
jquery (1)
bundler (2)
ci (3)
gems (5)
postgresql (1)
geminstaller (1)
gemcutter (1)
cloud (2)
rack (2)
refraction (1)
gem (5)
refactoring (1)
validations (1)
webrat (1)
engine-yard (1)
firefox (2)
jsunit (1)
mongrel (2)
thin (1)
unicorn (1)
facebook (1)
rubygems (5)
jruby (1)
actioncontroller (1)
rails 2.3 (1)
palmpre (1)
autotest (1)
mac (2)
hosting (1)
goruco (11)
database (3)
railsconf (11)
gogaruco (4)
deployment (4)
github (1)
ie (1)
ajax (1)
intellij (1)
json (1)
asset packaging (1)
polonium (1)
character encoding (1)
utf-8 (1)
test (3)
civics (1)
hpricot (1)
rake (3)
sms (1)
unicode (1)
iphone (1)
java (1)
safari (1)
memory leaks (1)
rr (3)
editor (1)
css (1)
nyc (3)
performance (5)
fun (5)
enterprise rails (1)
health (1)
new and cool (1)
general (2)
treetop (1)
errors (1)
stack (1)
trace (1)
cache (1)
cookies (1)
freesoftware (1)
conferences (1)
development (1)
driven (1)
proxy (1)
caching (1)
peertopatent (1)
languages (1)
rest (2)
rubyforge (1)
sake (1)
file (1)
upload (1)
constants (1)
osx (1)
terminal (1)
pairprogramming (2)
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >