o: ActiveSupport::Cache::Entry :@created_atf1327290175.4166081 ©µ:@expires_in0:@compressedF:@value"‡!{"content_type"application/javascript" class"ProcessedAsset"dependency_digest"%69134429da2e98a232f276ede1107582" mtime"2012-01-19T18:17:29+11:00" _version"%45a9b34d2c65935f21d8f90f1e1b2836"dependency_paths[{" mtime"2012-01-19T18:17:29+11:00"digest"%998be5f1ce8b8a18837468aacef0a506" path"7$root/app/assets/javascripts/vendor/jquery-pjax.js"digest"%ca98799a7bba8aa7688318baf7781beb"required_paths["7$root/app/assets/javascripts/vendor/jquery-pjax.js" pathname"7$root/app/assets/javascripts/vendor/jquery-pjax.js"logical_path"vendor/jquery-pjax.js"lengthi<"source"<// jquery.pjax.js // copyright chris wanstrath // https://github.com/defunkt/jquery-pjax (function($){ // When called on a link, fetches the href with ajax into the // container specified as the first parameter or with the data-pjax // attribute on the link itself. // // Tries to make sure the back button and ctrl+click work the way // you'd expect. // // Accepts a jQuery ajax options object that may include these // pjax specific options: // // container - Where to stick the response body. Usually a String selector. // $(container).html(xhr.responseBody) // push - Whether to pushState the URL. Defaults to true (of course). // replace - Want to use replaceState instead? That's cool. // // For convenience the first parameter can be either the container or // the options object. // // Returns the jQuery object $.fn.pjax = function( container, options ) { if ( options ) options.container = container else options = $.isPlainObject(container) ? container : {container:container} // We can't persist $objects using the history API so we must use // a String selector. Bail if we got anything else. if ( options.container && typeof options.container !== 'string' ) { throw "pjax container must be a string selector!" return false } return this.live('click', function(event){ // Middle click, cmd click, and ctrl click should open // links in a new tab as normal. if ( event.which > 1 || event.metaKey ) return true var defaults = { url: this.href, container: $(this).attr('data-pjax'), clickedElement: $(this), fragment: null } $.pjax($.extend({}, defaults, options)) event.preventDefault() }) } // Loads a URL with ajax, puts the response body inside a container, // then pushState()'s the loaded URL. // // Works just like $.ajax in that it accepts a jQuery ajax // settings object (with keys like url, type, data, etc). // // Accepts these extra keys: // // container - Where to stick the response body. Must be a String. // $(container).html(xhr.responseBody) // push - Whether to pushState the URL. Defaults to true (of course). // replace - Want to use replaceState instead? That's cool. // // Use it just like $.ajax: // // var xhr = $.pjax({ url: this.href, container: '#main' }) // console.log( xhr.readyState ) // // Returns whatever $.ajax returns. var pjax = $.pjax = function( options ) { var $container = $(options.container), success = options.success || $.noop // We don't want to let anyone override our success handler. delete options.success // We can't persist $objects using the history API so we must use // a String selector. Bail if we got anything else. if ( typeof options.container !== 'string' ) throw "pjax container must be a string selector!" options = $.extend(true, {}, pjax.defaults, options) if ( $.isFunction(options.url) ) { options.url = options.url() } options.context = $container options.success = function(data){ if ( options.fragment ) { // If they specified a fragment, look for it in the response // and pull it out. var $fragment = $(data).find(options.fragment) if ( $fragment.length ) data = $fragment.children() else return window.location = options.url } else { // If we got no data or an entire web page, go directly // to the page and let normal error handling happen. if ( !$.trim(data) || / tag in the response, use it as // the page's title. var oldTitle = document.title, title = $.trim( this.find('title').remove().text() ) if ( title ) document.title = title // No