Class: Reviewlette::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/reviewlette/database.rb

Constant Summary collapse

DATABASE =
Sequel.connect("sqlite://#{@path}/reviewlette.db")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDatabase

Returns a new instance of Database.



15
16
17
18
# File 'lib/reviewlette/database.rb', line 15

def initialize
  @reviewer = DATABASE.from(:reviewer)
  @reviews = DATABASE.from(:reviews)
end

Instance Attribute Details

#reviewerObject

Returns the value of attribute reviewer.



13
14
15
# File 'lib/reviewlette/database.rb', line 13

def reviewer
  @reviewer
end

#reviewsObject

Returns the value of attribute reviews.



13
14
15
# File 'lib/reviewlette/database.rb', line 13

def reviews
  @reviews
end

Instance Method Details

#add_pr_to_db(pr_name, reviewer) ⇒ Object



26
27
28
29
# File 'lib/reviewlette/database.rb', line 26

def add_pr_to_db(pr_name, reviewer)
  @reviews.insert(:name => pr_name, :reviewer => reviewer, :created_at => Date.today)
  count_up(reviewer)
end

#conscruct_graph_structObject



55
56
57
58
59
60
61
# File 'lib/reviewlette/database.rb', line 55

def conscruct_graph_struct
  data = []
  get_users_trello_entries.each do |x|
    data.push({ label: x, value: count_reviews(x) })
  end
  data
end

#conscruct_line_dataObject



63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/reviewlette/database.rb', line 63

def conscruct_line_data
  data = []
  date_range = (Date.today - 7 )..(Date.today)
  get_users_trello_entries.each do |name|
      date_range.each do |date|
      abc = {}
      abc[:created_at] = date
      abc[name] = @reviews.where(:reviewer => name, :created_at => date).select(:created_at).count
      data.push(abc)
      end
  end
  data
end

#count_reviews(reviewer) ⇒ Object



43
44
45
# File 'lib/reviewlette/database.rb', line 43

def count_reviews(reviewer)
  @reviews.where(:reviewer => reviewer).count
end

#count_up(reviewer) ⇒ Object



20
21
22
23
24
# File 'lib/reviewlette/database.rb', line 20

def count_up(reviewer)
  pr_reviewer = @reviewer.where(:trello_name => reviewer).select(:trello_name).first.values.first
  counter = @reviewer.where(:trello_name => pr_reviewer).select(:reviews).first.values.first
  @reviewer.where(:trello_name => reviewer).update(:reviews => counter.next)
end

#find_gh_name_by_trello_name(trello_name) ⇒ Object



47
48
49
# File 'lib/reviewlette/database.rb', line 47

def find_gh_name_by_trello_name(trello_name)
  @reviewer.where(:trello_name => trello_name).select(:gh_name).first.values.first
end

#get_users_gh_entriesObject



35
36
37
# File 'lib/reviewlette/database.rb', line 35

def get_users_gh_entries
  @reviewer.map([:gh_name]).flatten.select{|user| user unless user.nil?}
end

#get_users_tel_entriesObject



31
32
33
# File 'lib/reviewlette/database.rb', line 31

def get_users_tel_entries
  @reviewer.map([:tel_name]).flatten.select{|user| user unless user.nil?}
end

#get_users_trello_entriesObject



39
40
41
# File 'lib/reviewlette/database.rb', line 39

def get_users_trello_entries
  @reviewer.where(:vacation => 'false').map([:trello_name]).flatten.select{|user| user unless user.nil?}
end

#set_vacation_flag(reviewer, state) ⇒ Object



51
52
53
# File 'lib/reviewlette/database.rb', line 51

def set_vacation_flag(reviewer, state)
  @reviewer.where(:tel_name => reviewer).update(:vacation => state)
end