lenary-ginatra 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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