Blob of lib/gitorious/graphs/builder.rb (raw blob data)

1 require "gruff"
2
3 silence_warnings do
4 Gruff::Base::TITLE_MARGIN = 2.0
5 end
6
7 module Gitorious
8 module Graphs
9 class Builder
10 def self.generate_all_for(repository)
11 generators = [CommitsBuilder, CommitsByAuthorBuilder]
12 generators.each do |generator|
13 generator.generate_for(repository)
14 end
15 end
16
17 def self.graph_dir
18 File.join(RAILS_ROOT, "public/images/graphs/")
19 end
20
21 def self.construct_filename(repository, branch, name)
22 "#{repository.project.slug}_#{repository.name}_#{branch}_#{name}.png"
23 end
24
25 def self.status_file(repository, branch = "master")
26 File.join(RAILS_ROOT, "tmp", "graph_generator",
27 "#{repository.project.slug}_#{repository.name}_#{repository.git.commit_count(branch)}_#{self.name}.status")
28 end
29
30 def self.default_theme
31 {
32 :colors => [
33 '#acd64f',
34 '#bcde71',
35 '#cce692',
36 '#dceeb4',
37 '#ecf6d6',
38 ],
39 :marker_color => '#aea9a9', # Grey
40 :font_color => 'black',
41 :background_colors => 'white'
42 }
43 end
44
45 def self.sidebar_pastel_theme
46 {
47 :colors => [
48 '#a9dada', # blue
49 '#aedaa9', # green
50 '#daaea9', # peach
51 '#dadaa9', # yellow
52 '#a9a9da', # dk purple
53 '#daaeda', # purple
54 '#dadada' # grey
55 ],
56 :marker_color => '#aea9a9', # Grey
57 :font_color => 'black',
58 :background_colors => '#EEF2F5'
59 }
60 end
61
62 def write
63 dest = File.join(self.class.graph_dir, construct_filename)
64 @graph.write(dest)
65 end
66 end
67 end
68 end