Class: Gitrob::Models::Assessment

Inherits:
Sequel::Model
  • Object
show all
Defined in:
lib/gitrob/models/assessment.rb

Instance Method Summary collapse

Instance Method Details

#comparable_assessment?(assessment) ⇒ Boolean

Returns:

  • (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_assessmentsObject



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

#nameObject



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

#validateObject



18
19
20
21
# File 'lib/gitrob/models/assessment.rb', line 18

def validate
  super
  validates_presence [:endpoint, :site, :verify_ssl]
end