Merge branch 'master' of bitbucket.org:jamkazam/jam-ruby

This commit is contained in:
Seth Call 2012-10-10 22:33:58 -05:00
commit bd047b0eea
8 changed files with 84 additions and 19 deletions

View File

@ -6,6 +6,10 @@ require "jam_ruby/version"
require "jam_ruby/message_factory"
require "jam_ruby/models/music_session_client"
require "jam_ruby/models/user"
require "jam_ruby/models/musician"
require "jam_ruby/models/band"
require "jam_ruby/models/connection"
require "jam_ruby/models/friendship"
require "jam_ruby/models/music_session"
include Jampb

View File

@ -1,4 +1,4 @@
module JamRuby
module JamRuby
# creates messages (implementation: protocol buffer) objects cleanly
class MessageFactory
@ -115,6 +115,12 @@ module JamRuby
return Jampb::ClientMessage.new(:type => ClientMessage::Type::HEARTBEAT, :route_to => SERVER_TARGET, :heartbeat => heartbeat)
end
# create a friend update message
def friend_update(user_id, online)
friend = Jampb::FriendUpdate.new(:user_id => user_id, :online => online)
return Jampb::ClientMessage.new(:type => ClientMessage::Type::FRIEND_UPDATE, :target => CLIENT_TARGET, :friend_update => friend)
end
# is this message directed to the server?
def server_directed? msg
return msg.route_to == MessageFactory::SERVER_TARGET

View File

@ -0,0 +1,9 @@
module JamRuby
class Band < ActiveRecord::Base
self.primary_key = 'id'
has_and_belongs_to_many :musicians
end
end

View File

@ -0,0 +1,8 @@
module JamRuby
class Connection < ActiveRecord::Base
self.primary_key = 'id'
belongs_to :user, :class_name => "JamRuby::User"
end
end

View File

@ -0,0 +1,10 @@
module JamRuby
class Friendship < ActiveRecord::Base
self.primary_key = 'id'
belongs_to :user
belongs_to :friend, :class_name => "JamRuby::User"
end
end

View File

@ -0,0 +1,9 @@
module JamRuby
class Musician < JamRuby::User
self.primary_key = 'id'
has_and_belongs_to_many :bands
end
end

View File

@ -2,11 +2,21 @@ module JamRuby
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation
attr_accessor :updating_password
attr_accessor :updating_password
self.primary_key = 'id'
self.primary_key = 'id'
# re-visit later (used for multiple table inheritance w/ Musician model)
# belongs_to :biz, :polymorphic => true
has_many :music_session_clients, :class_name => "JamRuby::MusicSessionClient"
has_many :connections, :class_name => "JamRuby::Connection"
has_many :friendships
has_many :friends, :through => :friendships
has_many :inverse_friendships, :class_name => "JamRuby::Friendship", :foreign_key => "friend_id"
has_many :inverse_friends, :through => :inverse_friendships, :source => :user
has_many :music_session_clients, :class_name => "JamRuby::MusicSessionClient"
has_many :created_music_sessions, :foreign_key => "user_id", :inverse_of => :user, :class_name => "JamRuby::MusicSession" # sessions *created* by the user
has_many :music_sessions, :through => :music_session_clients, :class_name => "JamRuby::MusicSession"
@ -21,23 +31,27 @@ module JamRuby
uniqueness: {case_sensitive: false}
validates_length_of :password, minimum: 6, maximum: 100, :if => :should_validate_password?
validates_presence_of :password_confirmation, :if => :should_validate_password?
validates_presence_of :password_confirmation, :if => :should_validate_password?
#validates :password_confirmation, presence: true
validates_confirmation_of :password, :if => :should_validate_password?
validates_confirmation_of :password, :if => :should_validate_password?
def should_validate_password?
updating_password || new_record?
end
def to_s
return email unless email.nil?
return name unless name.nil?
return id
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
def should_validate_password?
updating_password || new_record?
end
def friends?(user)
return self.friends.exists?(user)
end
def to_s
return email unless email.nil?
return name unless name.nil?
return id
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
end

View File

@ -0,0 +1,5 @@
require 'spec_helper'
describe Connection do
end