Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew2net committed Nov 17, 2023
1 parent 20c3c02 commit 3a0124e
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 4 deletions.
6 changes: 3 additions & 3 deletions lib/relaton_bib/bibtex_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ def fetch_place(bibtex)
# @return [RelatonBib::TypedTitleStringCollection]
def fetch_title(bibtex)
title = []
title << { type: "main", content: bibtex.title.to_s } if bibtex["title"]
title << { type: "main", content: bibtex.subtitle.to_s } if bibtex["subtitle"]
title << { type: "main", content: bibtex.convert(:latex).title.to_s } if bibtex["title"]
title << { type: "main", content: bibtex.convert(:latex).subtitle.to_s } if bibtex["subtitle"]
TypedTitleStringCollection.new title
end

Expand Down Expand Up @@ -240,7 +240,7 @@ def fetch_classification(bibtex)
# @param bibtex [BibTeX::Entry]
# @return [Array<String>]
def fetch_keyword(bibtex)
bibtex["keywords"]&.split(", ") || []
bibtex["keywords"]&.split(/,\s?/) || []
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/relaton_bib/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module RelatonBib
VERSION = "1.16.4".freeze
VERSION = "1.16.5".freeze
end
55 changes: 55 additions & 0 deletions spec/relaton_bib/bibtex_parser_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,59 @@
File.write(file, xml, encoding: "utf-8") unless File.exist? file
expect(xml).to be_equivalent_to File.read(file, encoding: "utf-8")
end

context "parse title" do
it "with subtitle" do
bibtex = BibTeX.parse <<~BIBTEX
@article{mrx05,
title = {Something Great},
subtitle = {Sub title},
}
BIBTEX
title = described_class.send :fetch_title, bibtex["mrx05"]
expect(title[0].title.content).to eq "Something Great"
expect(title[1].title.content).to eq "Sub title"
end

it "with double curly braces" do
bibtex = BibTeX.parse <<~BIBTEX
@article{mrx05,
title = {{Something Great}},
}
BIBTEX
title = described_class.send :fetch_title, bibtex["mrx05"]
expect(title[0].title.content).to eq "Something Great"
end
end

context "parse keywords" do
it "with comma separator" do
bibtex = BibTeX.parse <<~BIBTEX
@article{mrx05,
keywords = {Sensor Web,data acquisition},
}
BIBTEX
keywords = described_class.send :fetch_keyword, bibtex["mrx05"]
expect(keywords).to eq %w[Sensor\ Web data\ acquisition]
end

it "with comma and space separator" do
bibtex = BibTeX.parse <<~BIBTEX
@article{mrx05,
keywords = {Sensor Web, data acquisition},
}
BIBTEX
keywords = described_class.send :fetch_keyword, bibtex["mrx05"]
expect(keywords).to eq %w[Sensor\ Web data\ acquisition]
end

it "empty" do
bibtex = BibTeX.parse <<~BIBTEX
@article{mrx05,
}
BIBTEX
keywords = described_class.send :fetch_keyword, bibtex["mrx05"]
expect(keywords).to eq []
end
end
end

0 comments on commit 3a0124e

Please sign in to comment.