The current implementation of bsi is assuming, in the case of the adopted parameter, that the year will be supplied in the adopted identifier value. It must not: the year in the identifier call overrides it, and we have documents where the adopted identifier is not given with a year.
So:
Pubid::Bsi::Identifier.create(number: 639, adopted: Pubid::Cen::Identifier.parse("EN ISO 639:2012")).to_s ==
"BS EN ISO 639:2012"
but:
Pubid::Bsi::Identifier.create(number: 639, year: "2013", adopted: Pubid::Cen::Identifier.parse("EN ISO 639:2012")).to_s ==
"BS EN ISO 639:2013" # (currently is "BS EN ISO 639:2012")
Pubid::Bsi::Identifier.create(number: 639, year: "2013", adopted: Pubid::Cen::Identifier.parse("EN ISO 639")).to_s ==
"BS EN ISO 639:2013" # (currently is "BS EN ISO 639")
The current implementation of bsi is assuming, in the case of the adopted parameter, that the year will be supplied in the adopted identifier value. It must not: the year in the identifier call overrides it, and we have documents where the adopted identifier is not given with a year.
So:
but: