Sha256: aeb7ad6becbffb2f9f31325b4080ae6b2cdfaa8ab809059228b99a1ad751d828
Contents?: true
Size: 1.68 KB
Versions: 4
Compression:
Stored size: 1.68 KB
Contents
module Rhosync class App < Model field :name, :string set :users, :string set :sources, :string attr_reader :delegate validates_presence_of :name class << self def create(fields={}) fields[:id] = fields[:name] begin require under_score(fields[:name]) rescue Exception; end super(fields) end end def can_authenticate? self.delegate && self.delegate.singleton_methods.include?("authenticate") end def authenticate(login, password, session) if self.delegate && self.delegate.authenticate(login, password, session) user = User.load(login) if User.is_exist?(login) if not user user = User.create(:login => login) users << user.id end return user end end # TODO: Do we need this anymore? # def delete # sources.members.each do |source_name| # Source.load(source_name,{:app_id => self.name, # :user_id => '*'}).delete # end # users.members.each do |user_name| # User.load(user_name).delete # end # ReadState.delete(self.name) # super # end def delegate @delegate.nil? ? Object.const_get(camelize(self.name)) : @delegate end def partition_sources(partition,user_id) names = [] sources.members.each do |source| s = Source.load(source,{:app_id => self.name, :user_id => user_id}) if s.partition == partition names << s.name end end names end def store_blob(obj,field_name,blob) self.delegate.send :store_blob, obj,field_name,blob end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rhosync-2.0.0.beta7 | lib/rhosync/app.rb |
rhosync-2.0.0.beta6 | lib/rhosync/app.rb |
rhosync-2.0.0.beta4 | lib/rhosync/app.rb |
rhosync-2.0.0.beta3 | lib/rhosync/app.rb |