Skip to content

Commit e83e9d6

Browse files
committed
Add relies_on references from related repos
1 parent 93900c5 commit e83e9d6

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
related_repos/

spec/spec_helper.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
require 'open3'
12
require 'pry'
23
require 'support/matchers'
34

@@ -115,6 +116,20 @@ def reckon_relies_on
115116
relies_on_key = instance.method(:relies_on).call
116117
relies_on[relies_on_key] << klass
117118
end
119+
clone_related_repos
120+
stdout, _, _ = Open3.capture3("grep", "-nr", "\"#{this_repo}:", ".")
121+
matches = stdout.split("\n")
122+
matches.each do |line|
123+
file, key = line.split(/\:\s+\"/)
124+
key.sub!("#{this_repo}:", "")
125+
.sub!("\"", "")
126+
if file.include?("/spec/") && file.include?("_spec.rb:")
127+
matches = /.\/(\w+)\/([\w\/.]+):(\d+)/.match(file)
128+
repo_url = related_repos.select { |x| x[x.rindex('/') + 1..] == matches[1] }.first
129+
repo_link = "#{repo_url}/blob/main/#{matches[2]}#L#{matches[3]}"
130+
relies_on[key] << repo_link
131+
end
132+
end
118133
relies_on
119134
end
120135

@@ -126,3 +141,20 @@ def relies_on_message(requirement)
126141
""
127142
end
128143
end
144+
145+
def clone_related_repos
146+
FileUtils.rm_r("related_repos") if Dir.exist?("related_repos")
147+
FileUtils.mkdir("related_repos")
148+
FileUtils.cd("related_repos")
149+
related_repos.each do |repo|
150+
system("git clone #{repo}")
151+
end
152+
end
153+
154+
def this_repo
155+
"relies_on_example"
156+
end
157+
158+
def related_repos
159+
["https://github.com/smiller/relies_on_example_related_repo"]
160+
end

0 commit comments

Comments
 (0)