Skip to content

Instantly share code, notes, and snippets.

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var swfVersionStr = "0";
var xiSwfUrlStr = "";
var flashvars = {};
flashvars.url = "woo"
var params = {};
params.quality = "high";
params.bgcolor = "#ffffff";
<script type="text/javascript">
function getBackground() {
return ‘<% @background %>’;
}
</script>
var j:JSONDecoder = new JSONDecoder(ExternalInterface.call(‘getBackground’), false);
class Vehicle < ActiveRecord::Base
#has field :options, type hstore
end
class Truck < Vehicle
@belison
belison / faye.ru
Created August 13, 2012 19:15
Figure 1 sample faye.ru
require ::File.expand_path('../config/environment', __FILE__)
require 'faye'
require 'yaml'
faye_config = YAML.load_file(Rails.root.join('config','faye.yml'))[Rails.env]
Faye::Logging.log_level = :debug
faye = Faye::RackAdapter.new(
:host => faye_config['host'],
:mount => "/#{faye_config['mount']}"
@belison
belison / faye.ru
Created August 13, 2012 19:26
Figure 2 faye.ru with Redis engine
require ::File.expand_path('../config/environment', __FILE__)
require 'faye'
require 'faye/redis'
require 'yaml'
faye_config = YAML.load_file(Rails.root.join('config','faye.yml'))[Rails.env]
redis_config = YAML.load_file(Rails.root.join('config','redis_store.yml'))[Rails.env]
redis_uri = URI.split(redis_config)
Faye::Logging.log_level = :debug
@belison
belison / faye.ru
Created August 13, 2012 19:30
Figure 6: final faye.ru with SSL and extentions
require ::File.expand_path('../config/environment', __FILE__)
require 'faye'
require 'faye/redis'
require 'yaml'
faye_config = YAML.load_file(Rails.root.join('config','faye.yml'))[Rails.env]
redis_config = YAML.load_file(Rails.root.join('config','redis_store.yml'))[Rails.env]
redis_uri = URI.split(redis_config)
Faye::Logging.log_level = :debug
@belison
belison / faye_auth.rb
Created August 13, 2012 19:32
Figure 4: Authentication extension for Faye
require 'base64'
module Publisher
class FayeAuth
def incoming(message, callback)
# Let non-subscribe messages through
unless message['channel'] == '/meta/subscribe'
return callback.call(message)
end
@belison
belison / faye.js
Created August 13, 2012 19:48
Figure 3: Sample JS connection
setupRealtime: function (config) {
if (window.Faye && Faye.Client && config.faye_uri) {
_.bindAll(this , 'onFayeConnect' , 'onFayeEvent');
this.fayeClient = new Faye.Client(config.faye_uri , {
retry: 5
});
this.fayeClient.connect(this.onFayeConnect);
}
},
@belison
belison / faye.js
Created August 13, 2012 19:52
Figure 5: Updated JS connection with auth
onFayeConnect: function (config) {
var user = this.get('user');
this.fayeClient.addExtension({
outgoing: function (message , callback) {
message.ext = {authToken: config.socket_auth_token , timestamp: config.socket_auth_timestamp};
callback(message);
}
});
his.fayeUserSubscription = this.fayeClient.subscribe('/' + user.get('id') + '/**' , this.onFayeEvent);
}