lenary-ginatra 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.gitattributes +2 -0
  2. data/.gitignore +13 -0
  3. data/.gitmodules +3 -0
  4. data/README.md +127 -0
  5. data/Rakefile +86 -0
  6. data/TODO.md +10 -0
  7. data/VERSION +1 -0
  8. data/bin/ginatra +60 -0
  9. data/bin/ginatra-daemon +81 -0
  10. data/bin/ginatra-directory +60 -0
  11. data/bin/ginatra-server +28 -0
  12. data/config.ru +7 -0
  13. data/features/pages.feature +33 -0
  14. data/features/step_definitions/page_steps.rb +36 -0
  15. data/features/support/env.rb +12 -0
  16. data/ginatra.gemspec +120 -0
  17. data/lib/ginatra.rb +185 -0
  18. data/lib/ginatra/config.rb +55 -0
  19. data/lib/ginatra/helpers.rb +112 -0
  20. data/lib/ginatra/repo.rb +50 -0
  21. data/lib/ginatra/repo_list.rb +53 -0
  22. data/lib/sinatra/partials.rb +17 -0
  23. data/public/favicon.ico +0 -0
  24. data/rackup.ru +7 -0
  25. data/repos/README.md +8 -0
  26. data/spec/repo_list_spec.rb +22 -0
  27. data/spec/repo_spec.rb +58 -0
  28. data/spec/spec_helper.rb +30 -0
  29. data/vendor/vegas/History.txt +18 -0
  30. data/vendor/vegas/LICENSE +22 -0
  31. data/vendor/vegas/Manifest.txt +5 -0
  32. data/vendor/vegas/README.rdoc +45 -0
  33. data/vendor/vegas/Rakefile +32 -0
  34. data/vendor/vegas/lib/vegas.rb +16 -0
  35. data/vendor/vegas/lib/vegas/runner.rb +270 -0
  36. data/vendor/vegas/test/test_app/bin/test_app +9 -0
  37. data/vendor/vegas/test/test_app/test_app.rb +10 -0
  38. data/vendor/vegas/test/test_apps.rb +22 -0
  39. data/vendor/vegas/test/test_helper.rb +59 -0
  40. data/vendor/vegas/test/test_vegas_runner.rb +8 -0
  41. data/vendor/vegas/vegas.gemspec +45 -0
  42. data/views/_actor_box.erb +13 -0
  43. data/views/_commit_info_box.erb +27 -0
  44. data/views/_header.erb +6 -0
  45. data/views/_tree_part.erb +11 -0
  46. data/views/atom.builder +32 -0
  47. data/views/blob.erb +9 -0
  48. data/views/commit.erb +20 -0
  49. data/views/index.erb +12 -0
  50. data/views/layout.erb +35 -0
  51. data/views/log.erb +64 -0
  52. data/views/tree.erb +24 -0
  53. metadata +158 -0
@@ -0,0 +1,13 @@
1
+ <div class='commit-<%= role.to_s %>'>
2
+ <img src='<%= gravatar_url(actor.email) %>' />
3
+ <table cellpadding=0>
4
+ <tr>
5
+ <td>
6
+ <%= actor.name %> <span class='quiet'>(<%= role.to_s %>)</span>
7
+ </td>
8
+ </tr>
9
+ <tr>
10
+ <td><%= nicetime(date) %></td>
11
+ </tr>
12
+ </table>
13
+ </div>
@@ -0,0 +1,27 @@
1
+ <div id='commit-info'>
2
+ <div class='right'>
3
+ <dl>
4
+ <dt>commit:</dt>
5
+ <dd>
6
+ <a href='/<%= repo.param %>/commit/<%= commit.id_abbrev %>'>
7
+ <code><%= commit.id %></code>
8
+ </a>
9
+ </dd><br>
10
+
11
+ <dt>tree:</dt>
12
+ <dd>
13
+ <a href='/<%= repo.param %>/tree/<%= commit.tree.id[0..7] %>'>
14
+ <code><%= commit.tree.id %></code>
15
+ </a>
16
+ </dd><br>
17
+ <% commit.parents.each do |parent| %>
18
+ <dt>parent:</dt>
19
+ <dd>
20
+ <a href='/<%= repo.param %>/commit/<%= parent.id_abbrev %>'>
21
+ <code><%= parent.id %></code>
22
+ </a>
23
+ </dd>
24
+ <% end %>
25
+ </dl>
26
+ </div>
27
+ </div>
data/views/_header.erb ADDED
@@ -0,0 +1,6 @@
1
+ <h2>
2
+ <a href='/<%= repo.param %>'><%= repo.name %></a>
3
+ </h2>
4
+ <div class='repo-info'>
5
+ <%= repo.description.split("\n").first %>
6
+ </div>
@@ -0,0 +1,11 @@
1
+ <li class="tree"><a href="<%= path[:tree] %><%= tree_path %>"><%= current_tree.basename %></a>
2
+ <ul>
3
+ <% current_tree.trees.each do |next_tree| %>
4
+ <% new_path = tree_path + "/#{next_tree.name}"%>
5
+ <%= partial(:tree_part, :locals => {:current_tree => next_tree, :tree_path => new_path, :path => path }) %>
6
+ <% end %>
7
+ <% current_tree.blobs.each do |next_blob| %>
8
+ <li class="blob"><a href="<%= path[:blob] %><%= tree_path %>/<%= next_blob.basename %>"><%= next_blob.basename %></a></li>
9
+ <% end %>
10
+ </ul>
11
+ </li>
@@ -0,0 +1,32 @@
1
+ xml.instruct! :xml, :version => '1.0', :encoding => 'utf-8'
2
+ xml.feed :'xml:lang' => 'en-US', :xmlns => 'http://www.w3.org/2005/Atom' do
3
+ base_title = "#{@repo.name}: "
4
+ base_url = "http://#{hostname}/#{@repo.param}"
5
+ if params[:ref]
6
+ url = base_url + "/#{params[:ref]}"
7
+ title = base_title + params[:ref]
8
+ else
9
+ url = base_url
10
+ title = base_title + "master"
11
+ end
12
+ xml.id url
13
+ xml.link :type => 'text/html', :href => url, :rel => 'alternate'
14
+ xml.link :type => 'application/atom+xml', :href => "#{url}.atom", :rel => 'self'
15
+ xml.title title
16
+ xml.subtitle "#{h(@repo.description)}"
17
+ xml.updated(@commits.first ? rfc_date(@commits.first.committed_date) : rfc_date(Time.now.utc))
18
+ @commits.each do |commit|
19
+ xml.entry do |entry|
20
+ entry.id "#{base_url}/commit/#{commit.id_abbrev}"
21
+ entry.link :type => 'text/html', :href => "#{base_url}/commit/#{commit.id_abbrev}", :rel => 'alternate'
22
+ entry.updated rfc_date(commit.committed_date)
23
+ entry.title "Commit #{commit.id_abbrev} to #{@repo.name}"
24
+ entry.summary h(commit.short_message)
25
+ entry.content h(commit.message)
26
+ entry.author do |author|
27
+ author.name commit.author.name
28
+ author.email commit.author.email
29
+ end
30
+ end
31
+ end
32
+ end
data/views/blob.erb ADDED
@@ -0,0 +1,9 @@
1
+ <%= partial(:header, :locals => {:repo => @repo}) %>
2
+ <h3>Blob: <%= params[:splat].first %></h3>
3
+ <div class="active">
4
+ <div class="blob">
5
+ <h4><img src="/img/doc.png" /><%= @blob.name %></h4>
6
+ <%= CodeRay.scan(@blob.data, @highlighter).div(:line_numbers => :table, :css => :class) %>
7
+ </div>
8
+ <div class="clearfix">&nbsp;</div>
9
+ </div>
data/views/commit.erb ADDED
@@ -0,0 +1,20 @@
1
+ <%= partial(:header, :locals => {:repo => @repo}) %>
2
+ <h3>Commit: <%= @commit.id %><%= commit_refs(@commit, @repo.param) %> <%= patch_link(@commit, @repo.param) %></h3>
3
+ <div class="active">
4
+ <div class='single-commit' id='commit'>
5
+ <%= partial(:commit_info_box,
6
+ :locals => { :repo => @repo,
7
+ :commit => @commit }) %>
8
+ <%= actor_boxes @commit %>
9
+ <div id="message"><%= simple_format(h(@commit.message)) %></div>
10
+ <%= file_listing(@commit) %>
11
+ <div id="files">
12
+ <% count = 0 %>
13
+ <% @commit.diffs.select { |d| !d.deleted_file && !d.new_file }.each do |diff| %>
14
+ <% count += 1 %>
15
+ <h4><img src="/img/doc.png" /><a name='file_<%= count %>'><code><%= diff.b_path %></code></a></h4>
16
+ <div class="diff"><%= diff((diff.diff)) %></div>
17
+ <% end %>
18
+ </div>
19
+ </div>
20
+ </div>
data/views/index.erb ADDED
@@ -0,0 +1,12 @@
1
+ <h3>Repositories</h3>
2
+ <div class="active repo-list">
3
+ <div class="commit-info">
4
+ <%=h Ginatra::Config.description %>
5
+ </div>
6
+ <dl>
7
+ <% Ginatra::RepoList.list.each do |repo| %>
8
+ <dt><a href="/<%= repo.param %>"><%= repo.name %></a></dt>
9
+ <dd><%=h repo.description %></dd>
10
+ <% end %>
11
+ </dl>
12
+ </div>
data/views/layout.erb ADDED
@@ -0,0 +1,35 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>Ginatra</title>
7
+ <link rel="stylesheet" href="/src/index.css" type="text/css" media="screen" />
8
+ <link rel="stylesheet" href="/src/default.css" type="text/css" media="screen" />
9
+
10
+ <script type="text/javascript" src="/src/highlight.pack.js"></script>
11
+ <script type="text/javascript">
12
+ hljs.initHighlightingOnLoad();
13
+ </script>
14
+ <script src="/src/jquery-1.3.2.min.js" type="text/javascript"></script>
15
+ <script src="/src/ginatra.js" type="text/javascript"></script>
16
+ <!--[if lt IE 8]>
17
+ <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
18
+ <style type="text/css" media="screen">
19
+ * { behavior: url("/src/iepngfix.htc") }
20
+ </style>
21
+ <![endif]-->
22
+ </head>
23
+ <body>
24
+ <div id="content">
25
+ <div id="inner">
26
+ <h1><a href="/">Ginatra</a></h1>
27
+ <%= yield %>
28
+ </div>
29
+ <div id="footer-spacer">&nbsp;</div>
30
+ </div>
31
+ <div id="footer">
32
+ Ginatra &mdash; &copy; 2009 Samuel Elliott &mdash; <a href="http://www.opensource.org/licenses/mit-license.php">MIT Licence</a>
33
+ </div>
34
+ </body>
35
+ </html>
data/views/log.erb ADDED
@@ -0,0 +1,64 @@
1
+ <%= partial(:header, :locals => {:repo => @repo}) %>
2
+ <h3>Commits<% if params[:ref] %>: <%= params[:ref] %><% end %> <%= atom_feed_link(@repo.param, params[:ref]) %></h3>
3
+ <div class="active">
4
+ <% if @previous_commits %>
5
+ <a href='/<%= params[:repo] %>/<%= params[:ref] %>/<%= params[:page] - 1 %>'>Previous</a>
6
+ <% end %>
7
+
8
+ <% if @separator %>
9
+ |
10
+ <% end %>
11
+
12
+ <% if @next_commits %>
13
+ <a href='/<%= params[:repo] %>/<%= params[:ref] %>/<%= params[:page] + 1 %>'>Next</a>
14
+ <% end %>
15
+ <div class='list'>
16
+ <div id='heads'>
17
+ <h3>Heads</h3>
18
+ <ul>
19
+ <% @repo.heads.each do |head| %>
20
+ <li>
21
+ <a href="/<%=h @repo.param %>/<%=h head.name %>">
22
+ <%=h head.name %>
23
+ </a>
24
+ </li>
25
+ <% end %>
26
+ </ul>
27
+ </div>
28
+
29
+ <div id='tags'>
30
+ <h3>Tags</h3>
31
+ <% unless @repo.tags.empty? %>
32
+ <ul>
33
+ <% @repo.tags.each do |tag| %>
34
+ <li>
35
+ <a href="/<%=h @repo.param %>/commit/<%=h tag.name %>">
36
+ <%=h tag.name %>
37
+ </a>
38
+ </li>
39
+ <% end %>
40
+ </ul>
41
+ <% else %>
42
+ <p>No tags</p>
43
+ <% end %>
44
+ </div>
45
+ </div>
46
+ <div id='commit-log'>
47
+ <% @commits.each do |commit| %>
48
+ <% url = "/#{@repo.param}/commit/#{commit.id_abbrev}" %>
49
+ <div id='commit_<%= commit.id_abbrev %>' class='commit' onclick="location.href='<%= url %>'">
50
+ <div class='right'>
51
+ <span class='id'>
52
+ <code><a href="<%= url %>"><%= commit.id %></a></code>
53
+ </span>
54
+ <span class='refs'><%= commit_refs(commit, @repo.param) %></span>
55
+ </div>
56
+ <span class='date'><%= nicetime(commit.committed_date) %></span><br>
57
+
58
+ <span class='message'><%= truncate(h(commit.short_message), { :length => 140, :separator => ' '}) %></span><br>
59
+ <span class='author'><%= commit.author.name %> <small>(author)</small></span>
60
+ </div>
61
+ <% end %>
62
+ </div>
63
+ <div class="clearfix">&nbsp;</div>
64
+ </div>
data/views/tree.erb ADDED
@@ -0,0 +1,24 @@
1
+ <%= partial(:header, :locals => {:repo => @repo}) %>
2
+ <h3>Tree: <%= @tree.id %> <%= archive_link @tree, @repo.param %></h3>
3
+ <div class="active">
4
+ <ul class="commit-tree">
5
+ <% @tree.trees.each do |tree| %>
6
+ <% tree_path = "/#{tree.name}"%>
7
+ <li class="tree"><a href="<%= @path[:tree] %><%= tree_path %>"><%= tree.basename %></a>
8
+ <ul>
9
+ <% tree.trees.each do |next_tree| %>
10
+ <% new_path = tree_path + "/#{next_tree.name}" %>
11
+ <%= partial(:tree_part, :locals => {:current_tree => next_tree, :tree_path => new_path, :path => @path }) %>
12
+ <% end %>
13
+ <% tree.blobs.each do |next_blob| %>
14
+ <li class="blob"><a href="<%= @path[:blob] %><%= tree_path %>/<%= next_blob.basename %>"><%= next_blob.basename %></a></li>
15
+ <% end %>
16
+ </ul>
17
+ </li>
18
+ <% end %>
19
+ <% @tree.blobs.each do |blob| %>
20
+ <li class="blob"><a href="<%= @path[:blob] %>/<%= blob.basename %>"><%= blob.basename %></a></li>
21
+ <% end %>
22
+ </ul>
23
+ <div class="clearfix">&nbsp;</div>
24
+ </div>
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lenary-ginatra
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Sam Elliott
8
+ - Ryan Bigg
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-08-26 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: sinatra
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 0.9.4
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: grit
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.1.1
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: coderay
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 0.8.0
45
+ version:
46
+ description: Host your own git repository browser through the power of Sinatra and Grit
47
+ email: sam@lenary.co.uk
48
+ executables:
49
+ - ginatra
50
+ - ginatra-daemon
51
+ - ginatra-directory
52
+ - ginatra-server
53
+ extensions: []
54
+
55
+ extra_rdoc_files:
56
+ - README.md
57
+ files:
58
+ - .gitattributes
59
+ - .gitignore
60
+ - .gitmodules
61
+ - README.md
62
+ - Rakefile
63
+ - TODO.md
64
+ - VERSION
65
+ - bin/ginatra
66
+ - bin/ginatra-daemon
67
+ - bin/ginatra-directory
68
+ - bin/ginatra-server
69
+ - config.ru
70
+ - features/pages.feature
71
+ - features/step_definitions/page_steps.rb
72
+ - features/support/env.rb
73
+ - ginatra.gemspec
74
+ - lib/ginatra.rb
75
+ - lib/ginatra/config.rb
76
+ - lib/ginatra/helpers.rb
77
+ - lib/ginatra/repo.rb
78
+ - lib/ginatra/repo_list.rb
79
+ - lib/sinatra/partials.rb
80
+ - public/favicon.ico
81
+ - public/img/add.png
82
+ - public/img/diff.png
83
+ - public/img/doc.png
84
+ - public/img/rm.png
85
+ - public/img/tree.png
86
+ - public/src/blank.gif
87
+ - public/src/colour.css
88
+ - public/src/commit.css
89
+ - public/src/default.css
90
+ - public/src/ginatra.js
91
+ - public/src/highlight.pack.js
92
+ - public/src/iepngfix.htc
93
+ - public/src/index.css
94
+ - public/src/jquery-1.3.2.min.js
95
+ - public/src/lists.css
96
+ - public/src/reset.css
97
+ - public/src/table.css
98
+ - public/src/type.css
99
+ - rackup.ru
100
+ - repos/README.md
101
+ - spec/repo_list_spec.rb
102
+ - spec/repo_spec.rb
103
+ - spec/spec_helper.rb
104
+ - vendor/vegas/History.txt
105
+ - vendor/vegas/LICENSE
106
+ - vendor/vegas/Manifest.txt
107
+ - vendor/vegas/README.rdoc
108
+ - vendor/vegas/Rakefile
109
+ - vendor/vegas/lib/vegas.rb
110
+ - vendor/vegas/lib/vegas/runner.rb
111
+ - vendor/vegas/test/test_app/bin/test_app
112
+ - vendor/vegas/test/test_app/test_app.rb
113
+ - vendor/vegas/test/test_apps.rb
114
+ - vendor/vegas/test/test_helper.rb
115
+ - vendor/vegas/test/test_vegas_runner.rb
116
+ - vendor/vegas/vegas.gemspec
117
+ - views/_actor_box.erb
118
+ - views/_commit_info_box.erb
119
+ - views/_header.erb
120
+ - views/_tree_part.erb
121
+ - views/atom.builder
122
+ - views/blob.erb
123
+ - views/commit.erb
124
+ - views/index.erb
125
+ - views/layout.erb
126
+ - views/log.erb
127
+ - views/tree.erb
128
+ has_rdoc: false
129
+ homepage: http://lenary.github.com/ginatra
130
+ licenses:
131
+ post_install_message:
132
+ rdoc_options:
133
+ - --charset=UTF-8
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: "0"
141
+ version:
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: "0"
147
+ version:
148
+ requirements: []
149
+
150
+ rubyforge_project:
151
+ rubygems_version: 1.3.5
152
+ signing_key:
153
+ specification_version: 3
154
+ summary: A Gitweb Clone in Sinatra and Grit
155
+ test_files:
156
+ - spec/repo_list_spec.rb
157
+ - spec/repo_spec.rb
158
+ - spec/spec_helper.rb