jQuery and Rails' respond_to
// via: http://ozmm.org/posts/jquery_and_respond_to.html
jQuery.ajaxSetup({ ‘beforeSend’: function(xhr) {xhr.setRequestHeader(“Accept”, “text/javascript”)} })
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)
Jamie Wilkinson http://tramchase.com
jQuery.ajaxSetup({ ‘beforeSend’: function(xhr) {xhr.setRequestHeader(“Accept”, “text/javascript”)} })
require 'rss/2.0' require 'open-uri' class RssReader def parseFeed (url, length) feed_url = url output = ""; open(feed_url) do |http| response = http.read result = RSS::Parser.parse(response, false) output = "<span class=\"feedTitle\">#{result.channel.title}</span><br /><ul>" result.items.each_with_index do |item, i| output += "<li><a href=\"#{item.link}\">#{item.title}</a></li>" if ++i < length end output += "</ul>" end return output end end
class Something < ActiveRecord::Base # Validations validate :validate_state_change # State Machine States acts_as_state_machine :initial => :new state :new state :enabled, :after => :after_enabled state :disabled, :after => :after_disabled # State Machine Events event :enabled do transitions :from => :new, :to => :enabled transitions :from => :disabled, :to => :enabled end event :disabled do transitions :from => :new, :to => :disabled transitions :from => :enabled, :to => :disabled end # Instance Methods def validate_state_change return if new_record? old = self.class.find(id) old_state = old.state new_state = self.state self.state = old_state if old_state != new_state begin if self.method("#{new_state}!").call != true errors.add(:state, "cannot transition from #{old_state} to #{new_state}") end rescue NameError end self.state = new_state end end end
javascript:var d=document,f='http://www.facebook.com/share',l=d.location,e=encodeURIComponent,p='.php?src=bm&v=4&i=1190041327&u='+e(l.href)+'&t='+e(d.title);1;try{if(!/^(.*\.)?facebook\.[^.]*$/.test(l.host))throw(0);share_internal_bookmarklet(p)}catch(z){a=function(){if(!window.open(f+'r'+p,'sharer','toolbar=0,status=0,resizable=0,width=626,height=436'))l.href=f+p};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else{a()}}void(0) javascript:location.href='http://rickrolldb.com/entries/new?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title);
<h2>Join the XYZ list</h2> <form method="post" action="SERVER/mailman/subscribe/LISTNAME"> <p> Your E-mail address: <input type="text" name="email" size="30" value=""><br /> Your Name (optional): <input type="text" name="fullname" size="30" value=""><br /> </p> <p>You may enter a privacy password below. This provides only mild security, but should<br /> prevent others from messing with your subscription. <b>Do not use a valuable password</b> as it<br /> will occasionally be emailed back to you in cleartext.</p> <p>If you choose not to enter a password, one will be automatically generated for you, and it will<br /> be sent to you once you've confirmed your subscription. You can always request a mail-back<br /> of your password when you edit your personal options.</p> <p> Password choice: <input type="password" name="pw" size="15"><br /> Confirm Password: <input type="password" name="pw-conf" size="15"> </p> <p> Would you like to receive list mail batched in a daily digest? (You may choose NoMail after you join.)<br /> <input type="radio" name="digest" value="0" checked> No <input type="radio" name="digest" value="1"> Yes <br /> </p> <p><input type="submit" name="email-button" value="Subscribe"></p> </form>
for t in $(mysql --batch --column-names=false -e "show tables" mydbname |grep -v "exclude_this"); do mysql -e "alter table $t type=InnoDB" mydbname; done
CREATE TABLE new_table AS SELECT * FROM old_table WHERE 1 GROUP BY [COLUMN TO remove duplicates BY]; DROP TABLE old_table; RENAME TABLE new_table TO old_table;
# load production data, still needs some polish # based on code from http://push.cx/2007/capistrano-task-to-load-production-data # cap 2.0 compatible # exec is being weird, had to end w/ a syscall :\ any ideas? desc "Load production data into development database" task :load_production_data, :roles => :db, :only => { :primary => true } do require 'yaml' ['config/database.yml'].each do |file| database = YAML::load_file(file) filename = "dump.#{Time.now.strftime '%Y-%m-%d_%H:%M:%S'}.sql.gz" # on_rollback { delete "/tmp/#{filename}" } # run "mysqldump -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} > /tmp/#{filename}" do |channel, stream, data| run "mysqldump -h #{database['production']['host']} -u #{database['production']['username']} --password=#{database['production']['password']} #{database['production']['database']} | gzip > /tmp/#{filename}" do |channel, stream, data| puts data end get "/tmp/#{filename}", filename # exec "/tmp/#{filename}" password = database['development']['password'].nil? ? '' : "--password=#{database['development']['password']}" # FIXME pass shows up in process list, do not use in shared hosting!!! Use a .my.cnf instead # FIXME exec and run w/ localhost as host not working :\ # exec "mysql -u #{database['development']['username']} #{password} #{database['development']['database']} < #{filename}; rm -f #{filename}" `gunzip -c #{filename} | mysql -u #{database['development']['username']} #{password} #{database['development']['database']} && rm -f gunzip #{filename}` end end
function get_remote_file_size($url, $readable = true){ $parsed = parse_url($url); $host = $parsed["host"]; $fp = @fsockopen($host, 80, $errno, $errstr, 20); if(!$fp) return false; else { @fputs($fp, "HEAD $url HTTP/1.1\r\n"); @fputs($fp, "HOST: $host\r\n"); @fputs($fp, "Connection: close\r\n\r\n"); $headers = ""; while(!@feof($fp))$headers .= @fgets ($fp, 128); } @fclose ($fp); $return = false; $arr_headers = explode("\n", $headers); foreach($arr_headers as $header) { // follow redirect $s = 'Location: '; if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) { $url = trim(substr($header, strlen($s))); return get_remote_file_size($url, $readable); } // parse for content length $s = "Content-Length: "; if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) { $return = trim(substr($header, strlen($s))); break; } } if($return && $readable) { $size = round($return / 1024, 2); $sz = "KB"; // Size In KB if ($size > 1024) { $size = round($size / 1024, 2); $sz = "MB"; // Size in MB } $return = "$size $sz"; } return $return; }
def render(*args) args.first[:layout] = false if request.xhr? and args.first[:layout].nil? super end