| 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', |
| 40 |
:font_color => 'black', |
| 41 |
:background_colors => 'white' |
| 42 |
} |
| 43 |
end |
| 44 |
|
| 45 |
def self.sidebar_pastel_theme |
| 46 |
{ |
| 47 |
:colors => [ |
| 48 |
'#a9dada', |
| 49 |
'#aedaa9', |
| 50 |
'#daaea9', |
| 51 |
'#dadaa9', |
| 52 |
'#a9a9da', |
| 53 |
'#daaeda', |
| 54 |
'#dadada' |
| 55 |
], |
| 56 |
:marker_color => '#aea9a9', |
| 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 |