Sha256: 1a576c2e80e5ea8fe85e49daf559dcd8115d5524a522a623364d6d8a3b1300e6
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module Frisky module Model class Event include MongoMapper::Document key :type, String key :public, Boolean key :payload, Hash key :repository_id, ObjectId key :actor_id, ObjectId key :commit_ids, Array, default: nil key :ref, String key :head, String key :created_at, String belongs_to :actor, class_name: 'Frisky::Model::Person' belongs_to :repository, class_name: 'Frisky::Model::Repository' many :commits, in: :commit_ids, class_name: 'Frisky::Model::Commit' def self.load_from_hashie(hashie) e = Event.find(hashie.id) e.actor = Person.find(e.actor_id) e.repository = Repository.find(e.repository_id) e.commits = e.commit_ids.map {|id| Commit.find(id) } e end def serialize # Save all related self.actor.save! self.repository.save! self.commit_ids ||= [] self.commits.each {|c| c.save!; self.commit_ids << c._id unless self.commit_ids.include? c._id } self.actor_id = self.actor.id self.repository_id = self.repository.id self.save! self.to_json end def self.exists?(raw) self.collection.find_one(type: raw.type, _id: raw.id) != nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
frisky_mongo-0.7.7 | lib/frisky-mongo/models/event.rb |