Skip to content

Commit 191cdb6

Browse files
authored
Merge pull request #105 from railsbump/fixes/issue-104-slug-taken
Redirect to existing slug when Gemfile.lock content has been already processed
2 parents 3ea9a31 + a11895e commit 191cdb6

File tree

4 files changed

+4076
-9
lines changed

4 files changed

+4076
-9
lines changed

app/models/lockfile.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ def gem_names
3030
parser.dependencies.keys - %w(rails)
3131
end
3232

33+
def calculated_slug
34+
ActiveSupport::Digest.hexdigest(gem_names.join("#"))
35+
end
36+
3337
private
3438

3539
def add_gemmies
@@ -45,7 +49,7 @@ def add_gemmies
4549
def generate_slug
4650
return if self.slug.present?
4751

48-
self.slug = ActiveSupport::Digest.hexdigest(gem_names.join("#"))
52+
self.slug = calculated_slug
4953
end
5054

5155
def validate_content

app/services/lockfiles/create.rb

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,11 @@ def call(content)
2121
def build(content)
2222
result = Lockfile.new(content: content)
2323

24-
if result.valid?
25-
if existing_lockfile = Lockfile.find_by(slug: result.slug)
26-
raise AlreadyExists.new(existing_lockfile)
27-
end
28-
29-
result
30-
else
31-
result
24+
if existing_lockfile = Lockfile.find_by(slug: result.calculated_slug)
25+
raise AlreadyExists.new(existing_lockfile)
3226
end
27+
28+
result
3329
end
3430
end
3531
end

0 commit comments

Comments
 (0)