diaspora/app/models/aspect.rb

37 lines
806 B
Ruby

# Copyright (c) 2010, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
class Aspect < ActiveRecord::Base
belongs_to :user
has_many :aspect_memberships
has_many :contacts, :through => :aspect_memberships
has_many :post_visibilities
has_many :posts, :through => :post_visibilities
validates_presence_of :name
validates_length_of :name, :maximum => 20
validates_uniqueness_of :name, :scope => :user_id
before_validation do
name.strip!
end
def to_s
name
end
def as_json(opts = {})
{
:aspect => {
:name => self.name,
:people => self.people.each{|person| person.as_json},
:posts => self.posts.each {|post| post.as_json },
}
}
end
end