Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions lib/gem_dating/input.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ def gems
lines.each_with_object([]) do |line, gems|
line = gem_line(line.strip)
gems << cleanup(line) if line
end
end.uniq
end

def gem_line(line)
return if line.strip == "end"
return if line =~ /^\s*#/
single_word_ruby_statements = %w{end else #}
return if single_word_ruby_statements.include? line.strip

if line.start_with? "gem("
line.split("(")[1].split(",")[0]
elsif line.start_with? "gem"
line.split[1].split(",")[0]
elsif line.split.length == 1
elsif line.split.length == 1 # match "just" gemname
line
end
end
Expand Down
14 changes: 14 additions & 0 deletions test/input_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,18 @@ def test_hash_alone_causes_confusion
gems = GemDating::Input.new(pasteboard).gems
assert_equal ["tzinfo-data", "bcrypt"], gems
end

def test_conditional_versioning
pasteboard = <<-TEXT
if rails_edge?
gem 'rails'
elsif rails_next?
gem 'rails', '~> 6.2'
else
gem 'rails', '~> 5.2.8.1'
end
TEXT
gems = GemDating::Input.new(pasteboard).gems
assert_equal ["rails"], gems
end
end