toolmantim-bananajour 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/Readme.md CHANGED
@@ -7,6 +7,8 @@ Unlike Gitjour, the repositories you're serving are not your working git reposit
7
7
 
8
8
  Bananajour is the baby of [Tim Lucas](http://toolmantim.com/) with much railscamp hackage by [Nathan de Vries](http://github.com/atnan), [Lachlan Hardy](http://github.com/lachlanhardy), [Josh Bassett](http://github.com/nullobject), [Myles Byrne](http://github.com/quackingduck), [Ben Hoskings](http://github.com/benhoskings), [Brett Goulder](http://github.com/brettgo1), [Tony Issakov](https://github.com/tissak), and [Mark Bennett](http://github.com/MarkBennett). The rad logo was by [Carla Hackett](http://carlahackettdesign.com/).
9
9
 
10
+ ![Screenshot of local view of Bananajour 2.1.3](http://cloud.github.com/downloads/toolmantim/bananajour/screenshot.png)
11
+
10
12
  Installation and usage
11
13
  ----------------------
12
14
 
@@ -36,10 +38,16 @@ Fire up [http://localhost:9331/](http://localhost:9331/) to check it out.
36
38
  If somebody starts sharing a Bananajour repository with the same name on the
37
39
  network, it'll automatically show up in the network thanks to the wonder that is Bonjour.
38
40
 
41
+ For a list of all the commands:
42
+
43
+ bananajour help
44
+
39
45
  Official repository and support
40
46
  -------------------------------
41
47
 
42
- [http://github.com/toolmantim/bananajour](http://github.com/toolmantim/bananajour) is where Bananajour lives along with all of its support issues.
48
+ The official repo and support issues/tickets live at [github.com/toolmantim/bananajour](http://github.com/toolmantim/bananajour).
49
+
50
+ Feature and support discussions live at [groups.google.com/group/bananajour](http://groups.google.com/group/bananajour).
43
51
 
44
52
  Developing
45
53
  ----------
@@ -8,12 +8,13 @@ class Bananajour::Bonjour::Advertiser
8
8
  end
9
9
  private
10
10
  def register_app
11
- STDERR.puts "Registering #{Bananajour.web_uri}"
11
+ STDOUT.puts "Registering #{Bananajour.web_uri}"
12
12
  tr = DNSSD::TextRecord.new
13
13
  tr["name"] = Bananajour.config.name
14
14
  tr["email"] = Bananajour.config.email
15
15
  tr["uri"] = Bananajour.web_uri
16
16
  tr["gravatar"] = Bananajour.gravatar
17
+ tr["version"] = Bananajour::VERSION
17
18
  DNSSD.register("#{Bananajour.config.name}'s bananajour", "_http._tcp,_bananajour", nil, Bananajour.web_port, tr) {}
18
19
  end
19
20
  def register_repos
@@ -25,7 +26,7 @@ class Bananajour::Bonjour::Advertiser
25
26
  end
26
27
  def stop_old_services
27
28
  old_services.each do |old_service|
28
- STDERR.puts "Unregistering #{old_service.repository.uri}"
29
+ STDOUT.puts "Unregistering #{old_service.repository.uri}"
29
30
  old_service.stop
30
31
  @services.delete(old_service)
31
32
  end
@@ -35,7 +36,7 @@ class Bananajour::Bonjour::Advertiser
35
36
  end
36
37
  def register_new_repositories
37
38
  new_repositories.each do |new_repo|
38
- STDERR.puts "Registering #{new_repo.uri}"
39
+ STDOUT.puts "Registering #{new_repo.uri}"
39
40
  tr = DNSSD::TextRecord.new
40
41
  tr["name"] = new_repo.name
41
42
  tr["uri"] = new_repo.uri
@@ -43,6 +44,7 @@ class Bananajour::Bonjour::Advertiser
43
44
  tr["bjour-email"] = Bananajour.config.email
44
45
  tr["bjour-uri"] = Bananajour.web_uri
45
46
  tr["bjour-gravatar"] = Bananajour.gravatar
47
+ tr["bjour-version"] = Bananajour::VERSION
46
48
  service = DNSSD.register(new_repo.name, "_git._tcp,_bananajour", nil, 9418, tr) {}
47
49
  service.class.instance_eval { attr_accessor(:repository) }
48
50
  service.repository = new_repo
@@ -6,8 +6,8 @@ class Bananajour::Bonjour::Repository
6
6
  @name, @uri, @person = name, uri, person
7
7
  end
8
8
 
9
- def html_friendly_name
10
- Bananajour::Repository.html_friendly_name(name)
9
+ def html_id
10
+ Bananajour::Repository.html_id(name)
11
11
  end
12
12
 
13
13
  def ==(other)
@@ -23,7 +23,7 @@ class Bananajour::Bonjour::Repository
23
23
  end
24
24
 
25
25
  def web_uri
26
- "#{person.uri}##{html_friendly_name}"
26
+ "#{person.uri}##{html_id}"
27
27
  end
28
28
 
29
29
  def to_hash
@@ -13,9 +13,6 @@ module Bananajour::Commands
13
13
  end
14
14
 
15
15
  def serve_web!
16
- if repositories.empty?
17
- STDERR.puts "Warning: you don't have any bananajour repositories. Use: bananajour init"
18
- end
19
16
  fork { exec "/usr/bin/env ruby #{File.dirname(__FILE__)}/../../sinatra/app.rb -p #{web_port} -e production" }
20
17
  puts "* Started " + web_uri.foreground(:yellow)
21
18
  end
@@ -25,11 +22,6 @@ module Bananajour::Commands
25
22
  puts "* Started " + "#{git_uri}".foreground(:yellow)
26
23
  end
27
24
 
28
- def serve_git!
29
- fork { exec "git daemon --base-path=#{repositories_path} --export-all" }
30
- puts "* Started " + "#{git_uri}".foreground(:yellow)
31
- end
32
-
33
25
  def advertise!
34
26
  fork { Bananajour::Bonjour::Advertiser.new.go! }
35
27
  end
@@ -1,5 +1,3 @@
1
- require 'md5'
2
-
3
1
  Grit::Commit.class_eval do
4
2
  def ==(other)
5
3
  self.id == other.id
@@ -1,3 +1,5 @@
1
+ require 'md5'
2
+
1
3
  module Bananajour
2
4
  module GravatarHelpers
3
5
  def gravatar
@@ -5,7 +5,7 @@ module Bananajour
5
5
  def self.for_name(name)
6
6
  new(Bananajour.repositories_path.join(name + ".git"))
7
7
  end
8
- def self.html_friendly_name(name)
8
+ def self.html_id(name)
9
9
  name.gsub(/[^A-Za-z-]+/, '').downcase
10
10
  end
11
11
  def initialize(path)
@@ -25,8 +25,8 @@ module Bananajour
25
25
  def name
26
26
  dirname.sub(".git",'')
27
27
  end
28
- def html_friendly_name
29
- self.class.html_friendly_name(name)
28
+ def html_id
29
+ self.class.html_id(name)
30
30
  end
31
31
  def dirname
32
32
  path.split.last.to_s
@@ -38,7 +38,7 @@ module Bananajour
38
38
  Bananajour.git_uri + dirname
39
39
  end
40
40
  def web_uri
41
- Bananajour.web_uri + "#" + html_friendly_name
41
+ Bananajour.web_uri + "#" + html_id
42
42
  end
43
43
  def grit_repo
44
44
  @grit_repo ||= Grit::Repo.new(path)
@@ -68,7 +68,8 @@ module Bananajour
68
68
  heads = grit_repo.heads
69
69
  {
70
70
  "name" => name,
71
- "html_friendly_name" => html_friendly_name,
71
+ "html_friendly_name" => html_id, # TODO: Deprecate in v3. Renamed to html_id since 2.1.4
72
+ "html_id" => html_id,
72
73
  "uri" => uri,
73
74
  "heads" => heads.map {|h| h.name},
74
75
  "recent_commits" => recent_commits.collect do |c|
@@ -1,3 +1,3 @@
1
1
  module Bananajour
2
- VERSION = '2.1.3'
2
+ VERSION = '2.1.4'
3
3
  end
data/lib/bananajour.rb CHANGED
@@ -87,6 +87,7 @@ module Bananajour
87
87
  "uri" => web_uri,
88
88
  "git-uri" => git_uri,
89
89
  "gravatar" => Bananajour.gravatar,
90
+ "version" => Bananajour::VERSION,
90
91
  "repositories" => repositories.collect do |r|
91
92
  {"name" => r.name, "uri" => r.uri}
92
93
  end
@@ -204,10 +204,9 @@
204
204
  :border-color #980
205
205
 
206
206
  - for repository in @my_repositories
207
- - repository_id = repository.html_friendly_name
208
207
  - heads = repository.grit_repo.heads
209
208
 
210
- .repository{:id => repository_id, 'data-name' => repository.name}
209
+ .repository{:id => repository.html_id, 'data-name' => repository.name}
211
210
 
212
211
  - if repository.readme_file && !local?
213
212
  %p.readme
@@ -227,7 +226,7 @@
227
226
  %li
228
227
  %img.gravatar{:src => commit.author.gravatar_uri}
229
228
  %p.message
230
- %a{:href => "/#{repository.html_friendly_name}/#{commit.id}"}&= commit.short_message
229
+ %a{:href => "/#{URI.escape(repository.name)}/#{commit.id}"}&= commit.short_message
231
230
  %span.meta
232
231
  - if head = heads.find {|h| h.commit == commit}
233
232
  \-
@@ -240,7 +239,7 @@
240
239
  %ul.network
241
240
  - for repo in @repository_browser.repositories_similar_to(repository)
242
241
  %li.loading{'data-json-uri' => repo.json_uri}
243
- %a.name{:href => "#{repo.person.uri}##{repo.html_friendly_name}"}= repo.person.name
242
+ %a.name{:href => "#{repo.person.uri}##{repo.html_id}"}= repo.person.name
244
243
 
245
244
  - if local?
246
245
  :javascript
@@ -267,7 +266,7 @@
267
266
  $(data.recent_commits).each(function(i) {
268
267
  var commit = this;
269
268
  var message = $("<p class='message'/>").html(
270
- $("<a/>").attr("href", data.bananajour.uri + data.html_friendly_name + "/" + commit.id).text(commit.message)
269
+ $("<a/>").attr("href", data.bananajour.uri + encodeURIComponent(data.name) + "/" + commit.id).text(commit.message)
271
270
  ).appendTo(repoLi).append(
272
271
  $("<span class='meta'/>")
273
272
  .append($("<em class='branch'/>").text(commit.head && (" - " + commit.head)))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toolmantim-bananajour
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Lucas
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-09 00:00:00 -07:00
12
+ date: 2009-06-12 00:00:00 -07:00
13
13
  default_executable: bananajour
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency