Class: Libertree::Model::Group
- Inherits:
-
Object
- Object
- Libertree::Model::Group
- Defined in:
- lib/libertree/model/group.rb
Instance Method Summary collapse
- #add_member(member) ⇒ Object
- #after_create ⇒ Object
- #group_member(member) ⇒ Object
- #member?(member) ⇒ Boolean
- #members ⇒ Object
- #posts(opts = {}) ⇒ Object
- #remove_member(member) ⇒ Object
Instance Method Details
#add_member(member) ⇒ Object
10 11 12 |
# File 'lib/libertree/model/group.rb', line 10 def add_member(member) Libertree::Model::GroupMember.create(group_id: self.id, member_id: member.id) end |
#after_create ⇒ Object
4 5 6 7 8 |
# File 'lib/libertree/model/group.rb', line 4 def after_create super # Add creator of the group to the group Libertree::Model::GroupMember.create(group_id: self.id, member_id: self.admin_member_id) end |
#group_member(member) ⇒ Object
42 43 44 |
# File 'lib/libertree/model/group.rb', line 42 def group_member(member) Libertree::Model::GroupMember.where(group_id: self.id, member_id: member.id) end |
#member?(member) ⇒ Boolean
18 19 20 |
# File 'lib/libertree/model/group.rb', line 18 def member?(member) self.group_member(member).any? end |
#members ⇒ Object
22 23 24 |
# File 'lib/libertree/model/group.rb', line 22 def members Libertree::Model::GroupMember.where(group_id: self.id).map { |gm| gm.member } end |
#posts(opts = {}) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/libertree/model/group.rb', line 26 def posts( opts = {} ) time = Time.at( opts.fetch(:time, Time.now.to_f) ).strftime("%Y-%m-%d %H:%M:%S.%6N%z") Post.s( "SELECT * FROM posts_in_group(?,?,?,?,?,?)", self.id, opts.fetch(:viewer_account_id), time, opts[:newer], opts[:order_by] == :comment, opts.fetch(:limit, 30) ) end |
#remove_member(member) ⇒ Object
14 15 16 |
# File 'lib/libertree/model/group.rb', line 14 def remove_member(member) self.group_member(member).delete end |