Class: Gitrob::Models::Assessment
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- Gitrob::Models::Assessment
- Defined in:
- lib/gitrob/models/assessment.rb
Instance Method Summary collapse
- #comparable_assessment?(assessment) ⇒ Boolean
- #comparable_assessments ⇒ Object
- #name ⇒ Object
- #save_blob(blob, repository, owner) ⇒ Object
- #save_github_access_token(token) ⇒ Object
- #save_owner(owner) ⇒ Object
- #save_repository(repository, owner) ⇒ Object
- #validate ⇒ Object
Instance Method Details
#comparable_assessment?(assessment) ⇒ Boolean
85 86 87 |
# File 'lib/gitrob/models/assessment.rb', line 85 def comparable_assessment?(assessment) comparable_assessments.map(&:id).include?(assessment.id) end |
#comparable_assessments ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/gitrob/models/assessment.rb', line 70 def comparable_assessments owner_ids = owners.map(&:github_id) comparison_ids = primary_comparisons_dataset .select_map(:secondary_assessment_id) + secondary_comparisons_dataset .select_map(:primary_assessment_id) self.class .where("id NOT IN ?", [id] + comparison_ids) .where(:finished => true, :deleted => false) .order(:created_at) .eager(:owners).reverse.all.select do |a| !(a.owners.map(&:github_id) & owner_ids).empty? end end |
#name ⇒ Object
23 24 25 |
# File 'lib/gitrob/models/assessment.rb', line 23 def name values[:name] || fallback_name end |
#save_blob(blob, repository, owner) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/gitrob/models/assessment.rb', line 50 def save_blob(blob, repository, owner) allowed_columns = Gitrob::Models::Blob.allowed_columns data = blob.select { |k, _v| allowed_columns.include?(k.to_sym) } blob = Gitrob::Models::Blob.new(data) blob.repository = repository blob.owner = owner self.blobs_count += 1 blob.owner.blobs_count += 1 blob.owner.save blob.repository.blobs_count += 1 blob.repository.save add_blob(blob) end |
#save_github_access_token(token) ⇒ Object
64 65 66 67 68 |
# File 'lib/gitrob/models/assessment.rb', line 64 def save_github_access_token(token) add_github_access_token( Gitrob::Models::GithubAccessToken.new(:token => token) ) end |
#save_owner(owner) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/gitrob/models/assessment.rb', line 27 def save_owner(owner) owner = Gitrob::Utils.symbolize_hash_keys(owner.to_hash) allowed_columns = Gitrob::Models::Owner.allowed_columns owner[:github_id] = owner.delete(:id) data = owner.select { |k, _v| allowed_columns.include?(k.to_sym) } owner = Gitrob::Models::Owner.new(data) self.owners_count += 1 add_owner(owner) end |
#save_repository(repository, owner) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/gitrob/models/assessment.rb', line 37 def save_repository(repository, owner) repository = Gitrob::Utils.symbolize_hash_keys(repository.to_hash) allowed_columns = Gitrob::Models::Repository.allowed_columns repository[:github_id] = repository.delete(:id) data = repository.select { |k, _v| allowed_columns.include?(k.to_sym) } repository = Gitrob::Models::Repository.new(data) repository.owner = owner self.repositories_count += 1 repository.owner.repositories_count += 1 repository.owner.save add_repository(repository) end |
#validate ⇒ Object
18 19 20 21 |
# File 'lib/gitrob/models/assessment.rb', line 18 def validate super validates_presence [:endpoint, :site, :verify_ssl] end |