diff --git a/gemfile_parser.go b/gemfile_parser.go index 9a8730c..9b34bd0 100644 --- a/gemfile_parser.go +++ b/gemfile_parser.go @@ -25,7 +25,7 @@ func (p GemfileParser) Parse(path string) (bool, error) { defer file.Close() quotes := `["']` - pumaRe := regexp.MustCompile(fmt.Sprintf(`gem %spuma%s`, quotes, quotes)) + pumaRe := regexp.MustCompile(fmt.Sprintf(`^\s*gem %spuma%s`, quotes, quotes)) scanner := bufio.NewScanner(file) for scanner.Scan() { diff --git a/gemfile_parser_test.go b/gemfile_parser_test.go index 985b905..df27a87 100644 --- a/gemfile_parser_test.go +++ b/gemfile_parser_test.go @@ -35,7 +35,21 @@ func testGemfileParser(t *testing.T, context spec.G, it spec.S) { context("Parse", func() { context("when using puma", func() { - it("parses correctly", func() { + it("parses correctly without spaces", func() { + const GEMFILE_CONTENTS = ` +source 'https://rubygems.org' + +gem 'puma' +` + + Expect(ioutil.WriteFile(path, []byte(GEMFILE_CONTENTS), 0644)).To(Succeed()) + + hasPuma, err := parser.Parse(path) + Expect(err).NotTo(HaveOccurred()) + Expect(hasPuma).To(Equal(true)) + }) + + it("parses correctly with spaces", func() { const GEMFILE_CONTENTS = ` source 'https://rubygems.org' do gem 'puma'