diff --git a/lib/appraisal/gemfile.rb b/lib/appraisal/gemfile.rb index 94d12ac0..f251acef 100644 --- a/lib/appraisal/gemfile.rb +++ b/lib/appraisal/gemfile.rb @@ -97,7 +97,7 @@ def gemspec(options = {}) protected def source_entry - @sources.map { |source| "source #{source.inspect}" }.join("\n") + @sources.uniq.map { |source| "source #{source.inspect}" }.join("\n") end def ruby_version_entry diff --git a/spec/appraisal/gemfile_spec.rb b/spec/appraisal/gemfile_spec.rb index f61aef7e..91637063 100644 --- a/spec/appraisal/gemfile_spec.rb +++ b/spec/appraisal/gemfile_spec.rb @@ -17,6 +17,13 @@ expect(gemfile.to_s.strip).to eq %{source "one"\nsource "two"} end + it "ignores duplicate sources" do + gemfile = Appraisal::Gemfile.new + gemfile.source "one" + gemfile.source "one" + expect(gemfile.to_s.strip).to eq %{source "one"} + end + it "preserves dependency order" do gemfile = Appraisal::Gemfile.new gemfile.gem "one"