Skip to content

Commit 7a8be20

Browse files
author
root
committed
Fix Enumerator in Ruby 1.8.7 (#4)
1 parent 7920892 commit 7a8be20

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

Diff for: app/controllers/git_http_controller.rb

+11-2
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ def authenticate
8383
end
8484

8585

86+
def get_enumerator
87+
if RUBY_VERSION == '1.8.7'
88+
Enumerable::Enumerator
89+
else
90+
Enumerator
91+
end
92+
end
93+
94+
8695
def service_rpc
8796
input = read_body
8897

@@ -101,7 +110,7 @@ def service_rpc
101110
pipe.write(input)
102111
while !pipe.eof?
103112
block = pipe.read()
104-
self.response_body = Enumerator.new do |y|
113+
self.response_body = get_enumerator.new do |y|
105114
y << block.to_s
106115
end
107116
end
@@ -147,7 +156,7 @@ def get_info_refs
147156
hdr_nocache
148157

149158
if Rails::VERSION::MAJOR >= 3
150-
self.response_body = Enumerator.new do |y|
159+
self.response_body = get_enumerator.new do |y|
151160
y << pkt_write("# service=git-#{service_name}\n")
152161
y << pkt_flush
153162
y << refs

Diff for: app/controllers/gitolite_hooks_controller.rb

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
include ActionView::Helpers::TextHelper
22

3+
4+
35
class GitoliteHooksController < ApplicationController
46

57
skip_before_filter :verify_authenticity_token, :check_if_login_required, :except => :test
@@ -13,6 +15,14 @@ def stub
1315
render(:code => 404)
1416
end
1517

18+
def get_enumerator
19+
if RUBY_VERSION == '1.8.7'
20+
Enumerable::Enumerator
21+
else
22+
Enumerator
23+
end
24+
end
25+
1626
def post_receive
1727
if not @repository.extra.validate_encoded_time(params[:clear_time], params[:encoded_time])
1828
render(:text => "The hook key provided is not valid. Please let your server admin know about it")
@@ -25,7 +35,7 @@ def post_receive
2535
if Rails::VERSION::MAJOR >= 3
2636
self.response.headers["Content-Type"] = "text/plain;"
2737

28-
self.response_body = Enumerator.new do |y|
38+
self.response_body = get_enumerator.new do |y|
2939
# Fetch commits from the repository
3040
GitHosting.logger.info "[GitHosting] Fetching changesets for '#{@project.identifier}' repository"
3141
y << "Fetching changesets for '#{@project.identifier}' repository ... "

0 commit comments

Comments
 (0)