lib/git_topic/naming.rb in git-topic-0.2.3.1 vs lib/git_topic/naming.rb in git-topic-0.2.3.2
- old
+ new
@@ -42,29 +42,24 @@
end
end
def notes_ref( branch=current_branch )
- user, topic = user_topic_name( branch )
+ user, topic = user_topic_name( branch, :lookup => true )
"refs/notes/reviews/#{user}/#{topic}"
end
- def user_topic_name( branch )
- if branch =~ %r{^origin}
- branch =~ %r{^\S*?/\S*?/(\S*?)/(\S*)}
- [$1, $2]
- elsif branch =~ %r{^(?:\S*/)?(\S*?)/(\S*)}
- [$1, $2]
- else
- raise "Cannot compute user_topic for [#{branch}]"
- end
+ def user_topic_name( ref, opts={} )
+ p = topic_parts( ref, opts )
+ [ p[:user], p[:topic ] ]
end
- def topic_parts( ref )
+ def topic_parts( ref, opts={} )
p = {}
parts = ref.split( '/' )
+ parts.shift if parts.first == "origin"
case parts.size
when 3
p[:namespace], p[:user], p[:topic] = parts
when 2
first_part = (parts.first =~ /(wip|review|rejected)/) ? :namespace : :user
@@ -72,10 +67,23 @@
when 1
p[:topic] = parts.first
else
raise "Unexpected topic: #{ref}"
end
+
+ if opts[:lookup] && p[:user].nil?
+ remote_branches_organized.find do |namespace, v|
+ v.find do |user, vv|
+ if vv.find{ |topic| topic == p[:topic] }
+ p[:user] = user
+ p[:namespace] = namespace
+ true
+ end
+ end
+ end
+ end
+
p
end
def user
@@ -138,16 +146,9 @@
end
namespace_ut.symbolize_keys!
namespace_ut[:review] ||= {}
namespace_ut[:rejected] ||= {}
-
- namespace_ut[:rejected].each do |user, topics|
- topics.map! do |topic|
- suffix = " (reviewer comments) "
- "#{topic}#{suffix if existing_comments?( "#{user}/#{topic}" )}"
- end
- end
namespace_ut[:review].reject!{|k,v| k == user}
namespace_ut
)
end