citeproc 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (807) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -3
  3. data/lib/citeproc/version.rb +1 -1
  4. metadata +4 -1606
  5. data/.rspec +0 -3
  6. data/.simplecov +0 -4
  7. data/Guardfile +0 -14
  8. data/cucumber.yml +0 -1
  9. data/features/affix/InterveningEmpty.feature +0 -52
  10. data/features/affix/PrefixFullCitationTextOnly.feature +0 -41
  11. data/features/affix/PrefixWithDecorations.feature +0 -41
  12. data/features/affix/SuppressDelimiterCharsWhenFullStopInSuffix.feature +0 -410
  13. data/features/affix/TextNodeWithMacro.feature +0 -40
  14. data/features/affix/WithCommas.feature +0 -987
  15. data/features/affix/WordProcessorAffixNoSpace.feature +0 -41
  16. data/features/api/SuppressAuthor.feature +0 -48
  17. data/features/api/UpdateItemsDelete.feature +0 -44
  18. data/features/api/UpdateItemsDeleteDecrementsByCiteDisambiguation.feature +0 -46
  19. data/features/api/UpdateItemsReshuffle.feature +0 -44
  20. data/features/bibheader/EntryspacingDefaultValueOne.feature +0 -37
  21. data/features/bibheader/EntryspacingExplicitValueZero.feature +0 -38
  22. data/features/bibheader/SecondFieldAlign.feature +0 -38
  23. data/features/bibheader/SecondFieldAlignWithAuthor.feature +0 -40
  24. data/features/bibheader/SecondFieldAlignWithNumber.feature +0 -44
  25. data/features/bibsection/Exclude.feature +0 -47
  26. data/features/bibsection/Include.feature +0 -47
  27. data/features/bibsection/Quash.feature +0 -48
  28. data/features/bibsection/Select.feature +0 -47
  29. data/features/bugreports/Abnt.feature +0 -59
  30. data/features/bugreports/AccidentalAllCaps.feature +0 -813
  31. data/features/bugreports/AllCapsLeakage.feature +0 -818
  32. data/features/bugreports/ApostropheOnParticle.feature +0 -35
  33. data/features/bugreports/AsaSpacing.feature +0 -49
  34. data/features/bugreports/AsmJournals.feature +0 -153
  35. data/features/bugreports/AuthorYear.feature +0 -343
  36. data/features/bugreports/AutomaticallyDeleteItemsFails.feature +0 -154
  37. data/features/bugreports/BadCitationUpdate.feature +0 -39
  38. data/features/bugreports/BrokenInstitutionalName.feature +0 -390
  39. data/features/bugreports/ChicagoAuthorDateLooping.feature +0 -388
  40. data/features/bugreports/ChineseCharactersFamilyOnlyPluralLabel.feature +0 -36
  41. data/features/bugreports/CitationSortsWithEtAl.feature +0 -74
  42. data/features/bugreports/CollapseFailure.feature +0 -72
  43. data/features/bugreports/ContainerTitleShort.feature +0 -45
  44. data/features/bugreports/ContentPunctuationDuplicate1.feature +0 -40
  45. data/features/bugreports/ContextualPluralWithMainItemFields.feature +0 -34
  46. data/features/bugreports/CreepingAddNames.feature +0 -223
  47. data/features/bugreports/DelimiterBug.feature +0 -984
  48. data/features/bugreports/DelimitersOnLocator.feature +0 -322
  49. data/features/bugreports/DemoPageFullCiteCruftOnSubsequent.feature +0 -711
  50. data/features/bugreports/DisambiguationAddNames.feature +0 -233
  51. data/features/bugreports/DisambiguationAddNamesBibliography.feature +0 -235
  52. data/features/bugreports/DroppingGroupDelimiterSpace.feature +0 -37
  53. data/features/bugreports/DuplicateSpaces.feature +0 -151
  54. data/features/bugreports/DuplicateSpaces2.feature +0 -333
  55. data/features/bugreports/DuplicateSpaces3.feature +0 -200
  56. data/features/bugreports/DuplicateTerminalPunctuationInBibliography.feature +0 -227
  57. data/features/bugreports/EmptyIfMatchNoneFail.feature +0 -38
  58. data/features/bugreports/EtAlSubsequent.feature +0 -41
  59. data/features/bugreports/FourAndFour.feature +0 -715
  60. data/features/bugreports/FrenchApostrophe.feature +0 -34
  61. data/features/bugreports/GreekStyleProblems.feature +0 -1201
  62. data/features/bugreports/GreekStyleTwoEditors.feature +0 -1201
  63. data/features/bugreports/IeeePunctuation.feature +0 -151
  64. data/features/bugreports/LabelsOutOfPlace.feature +0 -715
  65. data/features/bugreports/MovePunctuationInsideQuotesForLocator.feature +0 -714
  66. data/features/bugreports/NoEventInNestedMacroWithOldProcessor.feature +0 -120
  67. data/features/bugreports/NoTitle.feature +0 -346
  68. data/features/bugreports/NumberAffixEscape.feature +0 -35
  69. data/features/bugreports/NumberInMacroWithVerticalAlign.feature +0 -36
  70. data/features/bugreports/NumericStyleFirstRefMultipleCiteFailure.feature +0 -148
  71. data/features/bugreports/OldMhraDisambiguationFailure.feature +0 -411
  72. data/features/bugreports/ProcessorHang1.feature +0 -209
  73. data/features/bugreports/SingleQuote.feature +0 -151
  74. data/features/bugreports/SingletonIfMatchNoneFail.feature +0 -38
  75. data/features/bugreports/SortSecondaryKey.feature +0 -233
  76. data/features/bugreports/SortSecondaryKeyBibliography.feature +0 -235
  77. data/features/bugreports/SortedIeeeItalicsFail.feature +0 -296
  78. data/features/bugreports/ThesisUniversityAppearsTwice.feature +0 -715
  79. data/features/bugreports/TitleCase.feature +0 -33
  80. data/features/bugreports/TwoCitesPlusOneBackref.feature +0 -963
  81. data/features/bugreports/TwoFullStops.feature +0 -394
  82. data/features/bugreports/UndefinedInName.feature +0 -199
  83. data/features/bugreports/UndefinedInName2.feature +0 -184
  84. data/features/bugreports/UndefinedInName3.feature +0 -351
  85. data/features/bugreports/UndefinedNotString.feature +0 -144
  86. data/features/bugreports/UndefinedStr.feature +0 -151
  87. data/features/bugreports/UnisaHarvardInitialization.feature +0 -62
  88. data/features/bugreports/YearSuffixInHarvard1.feature +0 -205
  89. data/features/bugreports/YearSuffixLingers.feature +0 -55
  90. data/features/bugreports/disambiguate.feature +0 -343
  91. data/features/bugreports/ikeyOne.feature +0 -277
  92. data/features/bugreports/parenthesis.feature +0 -333
  93. data/features/bugreports/parseName.feature +0 -46
  94. data/features/bugreports/undefinedCrash.feature +0 -150
  95. data/features/collapse/AuthorCollapse.feature +0 -41
  96. data/features/collapse/AuthorCollapseDifferentAuthorsOneWithEtAl.feature +0 -43
  97. data/features/collapse/AuthorCollapseNoDate.feature +0 -41
  98. data/features/collapse/AuthorCollapseNoDateSorted.feature +0 -45
  99. data/features/collapse/CitationNumberRangesInsert.feature +0 -39
  100. data/features/collapse/CitationNumberRangesMixed.feature +0 -39
  101. data/features/collapse/CitationNumberRangesMixed2.feature +0 -39
  102. data/features/collapse/CitationNumberRangesMixed3.feature +0 -39
  103. data/features/collapse/CitationNumberRangesOneOnly.feature +0 -41
  104. data/features/collapse/CitationNumberRangesWithAffixes.feature +0 -35
  105. data/features/collapse/CitationNumberRangesWithAffixesGrouped.feature +0 -51
  106. data/features/collapse/CitationNumberRangesWithAffixesGroupedLocator.feature +0 -51
  107. data/features/collapse/CitationNumberRangesWithAffixesNoCollapse.feature +0 -36
  108. data/features/collapse/NumericDuplicate.feature +0 -37
  109. data/features/collapse/NumericDuplicate2.feature +0 -34
  110. data/features/collapse/TrailingDelimiter.feature +0 -57
  111. data/features/collapse/YearSuffixCollapse.feature +0 -46
  112. data/features/collapse/YearSuffixCollapseNoRange.feature +0 -46
  113. data/features/collapse/YearSuffixCollapseNoYearSuffixDelimiter.feature +0 -45
  114. data/features/collapse/YearSuffixImplicitCollapseNoYearSuffixDelimiter.feature +0 -44
  115. data/features/condition/EmptyDate.feature +0 -42
  116. data/features/condition/EmptyIsNumericFalse.feature +0 -40
  117. data/features/condition/EmptyIsUncertainDateFalse.feature +0 -40
  118. data/features/condition/EmptyShortTitleFalse.feature +0 -40
  119. data/features/condition/FirstNullAny.feature +0 -38
  120. data/features/condition/IsNumeric.feature +0 -49
  121. data/features/condition/LocatorIsFalse.feature +0 -50
  122. data/features/condition/MatchAll.feature +0 -43
  123. data/features/condition/NameAndTextVars.feature +0 -56
  124. data/features/condition/NumberIsNumeric.feature +0 -40
  125. data/features/condition/NumeralIsNumeric.feature +0 -40
  126. data/features/condition/NumeralWithTextIsNumeric.feature +0 -40
  127. data/features/condition/RefTypeBranching.feature +0 -119
  128. data/features/condition/SingletonIfMatchNone.feature +0 -41
  129. data/features/condition/TextIsNotNumeric.feature +0 -40
  130. data/features/condition/VariableAll.feature +0 -41
  131. data/features/condition/VariableAny.feature +0 -41
  132. data/features/condition/VariableNone.feature +0 -41
  133. data/features/date/Accessed.feature +0 -33
  134. data/features/date/DateAD.feature +0 -37
  135. data/features/date/DateBC.feature +0 -37
  136. data/features/date/DateNoDateNoTest.feature +0 -37
  137. data/features/date/DateNoDateWithTest.feature +0 -45
  138. data/features/date/DayOrdinalDayOneOnly.feature +0 -44
  139. data/features/date/IgnoreNonexistentSort.feature +0 -37
  140. data/features/date/InPress.feature +0 -38
  141. data/features/date/January.feature +0 -33
  142. data/features/date/KeyVariable.feature +0 -46
  143. data/features/date/LiteralFailGracefullyIfNoValue.feature +0 -38
  144. data/features/date/LocalizedDateFormats-af-ZA.feature +0 -57
  145. data/features/date/LocalizedDateFormats-ar-AR.feature +0 -57
  146. data/features/date/LocalizedDateFormats-bg-BG.feature +0 -57
  147. data/features/date/LocalizedDateFormats-ca-AD.feature +0 -57
  148. data/features/date/LocalizedDateFormats-cs-CZ.feature +0 -57
  149. data/features/date/LocalizedDateFormats-da-DK.feature +0 -57
  150. data/features/date/LocalizedDateFormats-de-AT.feature +0 -57
  151. data/features/date/LocalizedDateFormats-de-CH.feature +0 -57
  152. data/features/date/LocalizedDateFormats-de-DE.feature +0 -57
  153. data/features/date/LocalizedDateFormats-el-GR.feature +0 -57
  154. data/features/date/LocalizedDateFormats-en-US.feature +0 -57
  155. data/features/date/LocalizedDateFormats-es-ES.feature +0 -57
  156. data/features/date/LocalizedDateFormats-et-EE.feature +0 -57
  157. data/features/date/LocalizedDateFormats-fr-FR.feature +0 -57
  158. data/features/date/LocalizedDateFormats-he-IL.feature +0 -57
  159. data/features/date/LocalizedDateFormats-hu-HU.feature +0 -57
  160. data/features/date/LocalizedDateFormats-is-IS.feature +0 -57
  161. data/features/date/LocalizedDateFormats-it-IT.feature +0 -57
  162. data/features/date/LocalizedDateFormats-ja-JP.feature +0 -57
  163. data/features/date/LocalizedDateFormats-kh-KH.feature +0 -46
  164. data/features/date/LocalizedDateFormats-ko-KR.feature +0 -57
  165. data/features/date/LocalizedDateFormats-mn-MN.feature +0 -57
  166. data/features/date/LocalizedDateFormats-nb-NO.feature +0 -57
  167. data/features/date/LocalizedDateFormats-nl-NL.feature +0 -57
  168. data/features/date/LocalizedDateFormats-pl-PL.feature +0 -57
  169. data/features/date/LocalizedDateFormats-pt-BR.feature +0 -57
  170. data/features/date/LocalizedDateFormats-pt-PT.feature +0 -57
  171. data/features/date/LocalizedDateFormats-ro-RO.feature +0 -57
  172. data/features/date/LocalizedDateFormats-ru-RU.feature +0 -57
  173. data/features/date/LocalizedDateFormats-sk-SK.feature +0 -57
  174. data/features/date/LocalizedDateFormats-sl-SL.feature +0 -57
  175. data/features/date/LocalizedDateFormats-sr-RS.feature +0 -57
  176. data/features/date/LocalizedDateFormats-sv-SE.feature +0 -57
  177. data/features/date/LocalizedDateFormats-th-TH.feature +0 -57
  178. data/features/date/LocalizedDateFormats-tr-TR.feature +0 -57
  179. data/features/date/LocalizedDateFormats-uk-UA.feature +0 -57
  180. data/features/date/LocalizedDateFormats-vi-VN.feature +0 -57
  181. data/features/date/LocalizedDateFormats-zh-CN.feature +0 -57
  182. data/features/date/LocalizedDateFormats-zh-TW.feature +0 -57
  183. data/features/date/LocalizedNumericDefault.feature +0 -33
  184. data/features/date/LocalizedNumericDefaultMissingDay.feature +0 -33
  185. data/features/date/LocalizedNumericDefaultWithAffixes.feature +0 -33
  186. data/features/date/LocalizedNumericYear.feature +0 -33
  187. data/features/date/LocalizedNumericYearMonth.feature +0 -33
  188. data/features/date/LocalizedNumericYearRange.feature +0 -33
  189. data/features/date/LocalizedNumericYearWithAffixes.feature +0 -33
  190. data/features/date/LocalizedTextDefault.feature +0 -33
  191. data/features/date/LocalizedTextDefaultMissingDay.feature +0 -33
  192. data/features/date/LocalizedTextDefaultWithAffixes.feature +0 -33
  193. data/features/date/LocalizedTextInStyleLocaleWithTextCase.feature +0 -42
  194. data/features/date/LocalizedTextMonthFormOverride.feature +0 -35
  195. data/features/date/LocalizedTextYear.feature +0 -33
  196. data/features/date/LocalizedTextYearMonth.feature +0 -33
  197. data/features/date/LocalizedTextYearWithAffixes.feature +0 -33
  198. data/features/date/LocalizedWithInStyleFormatting.feature +0 -35
  199. data/features/date/LoneJapaneseMonth.feature +0 -33
  200. data/features/date/LongMonth.feature +0 -37
  201. data/features/date/LopsidedDataYearSuffixCollapse.feature +0 -43
  202. data/features/date/MaskNonexistentWithCondition.feature +0 -42
  203. data/features/date/NegativeDateSort.feature +0 -40
  204. data/features/date/NegativeDateSortViaMacro.feature +0 -43
  205. data/features/date/NegativeDateSortViaMacroOnYearMonthOnly.feature +0 -53
  206. data/features/date/NoDate.feature +0 -45
  207. data/features/date/NonexistentSortReverseBibliography.feature +0 -47
  208. data/features/date/NonexistentSortReverseCitation.feature +0 -37
  209. data/features/date/OtherAlone.feature +0 -37
  210. data/features/date/OtherWithDate.feature +0 -37
  211. data/features/date/RawParseSimpleDate.feature +0 -37
  212. data/features/date/RawSeasonRange1.feature +0 -33
  213. data/features/date/RawSeasonRange2.feature +0 -33
  214. data/features/date/RawSeasonRange3.feature +0 -33
  215. data/features/date/SeasonSubstituteInGroup.feature +0 -38
  216. data/features/date/SortEmptyDatesBibliography.feature +0 -53
  217. data/features/date/SortEmptyDatesCitation.feature +0 -42
  218. data/features/date/String.feature +0 -36
  219. data/features/date/TextFormFulldateDayRange.feature +0 -37
  220. data/features/date/TextFormFulldateMonthRange.feature +0 -37
  221. data/features/date/TextFormFulldateYearRange.feature +0 -37
  222. data/features/date/TextFormMonthdateMonthRange.feature +0 -37
  223. data/features/date/TextFormMonthdateYearRange.feature +0 -37
  224. data/features/date/TextFormYeardateYearRange.feature +0 -37
  225. data/features/date/TextFormYeardateYearRangeOpen.feature +0 -37
  226. data/features/date/Uncertain.feature +0 -42
  227. data/features/date/VariousInvalidDates.feature +0 -37
  228. data/features/date/YearSuffixDelimiter.feature +0 -44
  229. data/features/date/YearSuffixImplicitWithNoDate.feature +0 -54
  230. data/features/date/YearSuffixImplicitWithNoDateOneOnly.feature +0 -54
  231. data/features/date/YearSuffixWithNoDate.feature +0 -54
  232. data/features/decorations/AndTermUnaffectedByNameDecorations.feature +0 -38
  233. data/features/decorations/Baseline.feature +0 -48
  234. data/features/decorations/NestedQuotes.feature +0 -33
  235. data/features/decorations/NestedQuotesInnerReverse.feature +0 -33
  236. data/features/decorations/NoNormalWithoutDecoration.feature +0 -41
  237. data/features/decorations/SimpleFlipFlop.feature +0 -33
  238. data/features/decorations/SimpleQuotes.feature +0 -33
  239. data/features/disambiguate/AddNamesFailure.feature +0 -43
  240. data/features/disambiguate/AddNamesFailureWithAddGivenname.feature +0 -44
  241. data/features/disambiguate/AddNamesSuccess.feature +0 -43
  242. data/features/disambiguate/AllNamesBaseNameCountOnFailureIfYearSuffixAvailable.feature +0 -55
  243. data/features/disambiguate/AllNamesGenerally.feature +0 -44
  244. data/features/disambiguate/AllNamesSimpleSequence.feature +0 -42
  245. data/features/disambiguate/AllNamesWithInitialsGenerally.feature +0 -44
  246. data/features/disambiguate/AndreaEg1a.feature +0 -47
  247. data/features/disambiguate/AndreaEg1b.feature +0 -48
  248. data/features/disambiguate/AndreaEg1c.feature +0 -47
  249. data/features/disambiguate/AndreaEg2.feature +0 -49
  250. data/features/disambiguate/AndreaEg3.feature +0 -50
  251. data/features/disambiguate/AndreaEg4.feature +0 -52
  252. data/features/disambiguate/AndreaEg5.feature +0 -53
  253. data/features/disambiguate/BasedOnEtAlSubsequent.feature +0 -44
  254. data/features/disambiguate/BasedOnSubsequentFormWithBackref.feature +0 -63
  255. data/features/disambiguate/BasedOnSubsequentFormWithLocator.feature +0 -67
  256. data/features/disambiguate/ByCiteBaseNameCountOnFailureIfYearSuffixAvailable.feature +0 -47
  257. data/features/disambiguate/ByCiteDisambiguateCondition.feature +0 -54
  258. data/features/disambiguate/ByCiteGivennameExpandCrossNestedNames.feature +0 -40
  259. data/features/disambiguate/ByCiteGivennameNoShortFormInitializeWith.feature +0 -39
  260. data/features/disambiguate/ByCiteGivennameShortFormInitializeWith.feature +0 -40
  261. data/features/disambiguate/ByCiteGivennameShortFormNoInitializeWith.feature +0 -39
  262. data/features/disambiguate/ByCiteIncremental1.feature +0 -355
  263. data/features/disambiguate/ByCiteIncremental2.feature +0 -352
  264. data/features/disambiguate/ByCiteIsDefault.feature +0 -250
  265. data/features/disambiguate/ByCiteMinimalGivennameExpandMinimalNames.feature +0 -48
  266. data/features/disambiguate/ByCiteRetainNamesOnFailureIfYearSuffixNotAvailable.feature +0 -46
  267. data/features/disambiguate/ByCiteTwoAuthorsSameCite.feature +0 -38
  268. data/features/disambiguate/ByCiteTwoAuthorsSameFamilyName.feature +0 -44
  269. data/features/disambiguate/CitationLabelDefault.feature +0 -34
  270. data/features/disambiguate/CitationLabelInData.feature +0 -34
  271. data/features/disambiguate/DifferentSpacingInInitials.feature +0 -40
  272. data/features/disambiguate/DisambiguateTrueAndYearSuffixOne.feature +0 -220
  273. data/features/disambiguate/DisambiguateTrueAndYearSuffixTwo.feature +0 -220
  274. data/features/disambiguate/DisambiguateWithThree.feature +0 -48
  275. data/features/disambiguate/DisambiguateWithThree2.feature +0 -91
  276. data/features/disambiguate/DisambiguationHang.feature +0 -48
  277. data/features/disambiguate/ExtraTextCitation.feature +0 -44
  278. data/features/disambiguate/FailWithYearSuffix.feature +0 -390
  279. data/features/disambiguate/FamilyNameOnly.feature +0 -43
  280. data/features/disambiguate/HonorFullnameInBibliography.feature +0 -49
  281. data/features/disambiguate/ImplicitYearSuffixOnceOnly.feature +0 -56
  282. data/features/disambiguate/IncrementalExtraText.feature +0 -55
  283. data/features/disambiguate/InitializeWithButNoDisambiguation.feature +0 -292
  284. data/features/disambiguate/LastOnlyFailWithByCite.feature +0 -49
  285. data/features/disambiguate/NoTextElementUsesYearSuffixVariable.feature +0 -39
  286. data/features/disambiguate/PrimaryNameGenerally.feature +0 -42
  287. data/features/disambiguate/PrimaryNameWithInitialsLimitedToPrimary.feature +0 -46
  288. data/features/disambiguate/SetsOfNames.feature +0 -205
  289. data/features/disambiguate/SkipAccessedYearSuffix.feature +0 -258
  290. data/features/disambiguate/ThreeNoAuthorNoTitleEntries.feature +0 -63
  291. data/features/disambiguate/ToInitialOnly.feature +0 -39
  292. data/features/disambiguate/Trigraph.feature +0 -36
  293. data/features/disambiguate/YearCollapseWithInstitution.feature +0 -51
  294. data/features/disambiguate/YearSuffixAndSort.feature +0 -50
  295. data/features/disambiguate/YearSuffixAtTwoLevels.feature +0 -45
  296. data/features/disambiguate/YearSuffixFiftyTwoEntries.feature +0 -48
  297. data/features/disambiguate/YearSuffixFiftyTwoEntriesByCite.feature +0 -48
  298. data/features/disambiguate/YearSuffixMacroSameYearExplicit.feature +0 -45
  299. data/features/disambiguate/YearSuffixMacroSameYearImplicit.feature +0 -42
  300. data/features/disambiguate/YearSuffixMidInsert.feature +0 -391
  301. data/features/disambiguate/YearSuffixMixedDates.feature +0 -52
  302. data/features/disambiguate/YearSuffixTwoPairsBibliography.feature +0 -63
  303. data/features/disambiguate/YearSuffixTwoPairsFirstNameBibliography.feature +0 -65
  304. data/features/disambiguate/YearSuffixTwoPairsFullNamesBibliography.feature +0 -63
  305. data/features/disambiguate/YearSuffixWithEtAlSubequent.feature +0 -51
  306. data/features/disambiguate/YearSuffixWithMixedCreatorTypes.feature +0 -53
  307. data/features/discretionary/AuthorDateAuthorOnlyThenSuppressAuthor.feature +0 -46
  308. data/features/discretionary/AuthorOnly.feature +0 -42
  309. data/features/discretionary/CitationNumberAuthorOnlyThenSuppressAuthor.feature +0 -41
  310. data/features/discretionary/CitationNumberSuppressAuthor.feature +0 -40
  311. data/features/discretionary/SuppressAuthorSolo.feature +0 -45
  312. data/features/discretionary/SuppressEditorSolo.feature +0 -45
  313. data/features/discretionary/SuppressEditorSubstitute.feature +0 -45
  314. data/features/discretionary/SuppressMultipleAuthors.feature +0 -45
  315. data/features/display/AuthorAsHeading.feature +0 -80
  316. data/features/display/DisplayBlock.feature +0 -54
  317. data/features/display/SecondFieldAlignClone.feature +0 -65
  318. data/features/display/SecondFieldAlignMigratePunctuation.feature +0 -154
  319. data/features/etal/ShortFormOfName.feature +0 -38
  320. data/features/etal/UseZeroFirst.feature +0 -47
  321. data/features/flipflop/Apostrophes.feature +0 -1064
  322. data/features/flipflop/BoldfaceNodeLevelMarkup.feature +0 -33
  323. data/features/flipflop/ItalicsFlipped.feature +0 -35
  324. data/features/flipflop/ItalicsSimple.feature +0 -39
  325. data/features/flipflop/ItalicsWithOk.feature +0 -48
  326. data/features/flipflop/ItalicsWithOkAndTextcase.feature +0 -48
  327. data/features/flipflop/LeadingSingleQuote.feature +0 -33
  328. data/features/flipflop/QuotesInFieldNotOnNode.feature +0 -33
  329. data/features/flipflop/QuotesNodeLevelMarkup.feature +0 -40
  330. data/features/flipflop/SingleQuotesOnItalics.feature +0 -33
  331. data/features/flipflop/SmallCaps.feature +0 -36
  332. data/features/flipflop/StartingApostrophe.feature +0 -33
  333. data/features/form/TitleShort.feature +0 -33
  334. data/features/form/TitleShortNoLong.feature +0 -33
  335. data/features/form/TitleTestNoLongFalse.feature +0 -40
  336. data/features/fullstyles/ABdNT.feature +0 -675
  337. data/features/fullstyles/APA.feature +0 -361
  338. data/features/fullstyles/ChicagoArticleTitleQuestion.feature +0 -390
  339. data/features/fullstyles/ChicagoAuthorDateSimple.feature +0 -394
  340. data/features/fullstyles/ChicagoNoteWithBibliographyWithPublisher.feature +0 -716
  341. data/features/group/ComplexNesting.feature +0 -397
  342. data/features/group/ShortOutputOnly.feature +0 -35
  343. data/features/group/SuppressTermWhenNoOutputFromPartialDate.feature +0 -39
  344. data/features/group/SuppressValueWithEmptySubgroup.feature +0 -46
  345. data/features/group/SuppressWithEmptyNestedDateNode.feature +0 -202
  346. data/features/integration/CitationSort.feature +0 -50
  347. data/features/integration/CitationSortTwice.feature +0 -51
  348. data/features/integration/CrossCitationIbidOnInsert.feature +0 -82
  349. data/features/integration/DeleteName.feature +0 -36
  350. data/features/integration/DisambiguateAddGivenname1.feature +0 -45
  351. data/features/integration/DisambiguateAddGivenname2.feature +0 -45
  352. data/features/integration/DuplicateItem.feature +0 -45
  353. data/features/integration/DuplicateItem2.feature +0 -45
  354. data/features/integration/FirstReferenceNoteNumberPositionChange.feature +0 -62
  355. data/features/integration/IbidOnInsert.feature +0 -50
  356. data/features/integration/IbidWithDifferentLocators.feature +0 -59
  357. data/features/integration/SimpleFirstReferenceNoteNumber.feature +0 -61
  358. data/features/integration/SimpleIbid.feature +0 -57
  359. data/features/integration/SubsequentWhenInterveningFootnote.feature +0 -51
  360. data/features/integration/YearSuffixOnOffOn.feature +0 -46
  361. data/features/label/CollapsedPageNumberPluralDetection.feature +0 -42
  362. data/features/label/EditorTranslator1.feature +0 -556
  363. data/features/label/EmptyLabelVanish.feature +0 -43
  364. data/features/label/ImplicitForm.feature +0 -36
  365. data/features/label/NoFirstCharCapWithInTextClass.feature +0 -38
  366. data/features/label/NonexistentNameVariableLabel.feature +0 -36
  367. data/features/label/PageWithEmbeddedLabel.feature +0 -35
  368. data/features/label/PluralNumberOfVolumes.feature +0 -36
  369. data/features/label/PluralPagesWithAlphaPrefix.feature +0 -37
  370. data/features/locale/EffectOfStyleDefinition.feature +0 -38
  371. data/features/locale/EmptyDate.feature +0 -41
  372. data/features/locale/EmptyPlusOverrideDate.feature +0 -48
  373. data/features/locale/EmptyPlusOverrideStyleOpt.feature +0 -39
  374. data/features/locale/EmptyPlusOverrideTerm.feature +0 -44
  375. data/features/locale/EmptyStyleOpt.feature +0 -36
  376. data/features/locale/EmptyTerm.feature +0 -39
  377. data/features/locale/ForceEmptyAndOthersTerm.feature +0 -41
  378. data/features/locale/ForceEmptyEtAlTerm.feature +0 -40
  379. data/features/locale/NonExistentLocaleDef.feature +0 -48
  380. data/features/locale/OverloadWithEmptyString.feature +0 -46
  381. data/features/locale/PageRangeDelimiterTermDefined.feature +0 -38
  382. data/features/locale/PageRangeDelimiterTermFrenchUndef.feature +0 -34
  383. data/features/locale/PageRangeDelimiterTermUndefined.feature +0 -33
  384. data/features/locale/SpecificDate.feature +0 -41
  385. data/features/locale/SpecificStyleOpt.feature +0 -36
  386. data/features/locale/SpecificTerm.feature +0 -39
  387. data/features/locale/TermInSort.feature +0 -77
  388. data/features/locale/TitleCaseEmptyLangEmptyLocale.feature +0 -33
  389. data/features/locale/TitleCaseEmptyLangNonEnglishLocale.feature +0 -34
  390. data/features/locale/TitleCaseEnglishLangUpperEmptyLocale.feature +0 -33
  391. data/features/locale/TitleCaseGarbageLangEmptyLocale.feature +0 -33
  392. data/features/locale/TitleCaseGarbageLangEnglishLocale.feature +0 -34
  393. data/features/locale/TitleCaseGarbageLangNonEnglishLocale.feature +0 -34
  394. data/features/locale/TitleCaseNonEnglishLangUpperEmptyLocale.feature +0 -33
  395. data/features/locale/UnknownTerm.feature +0 -34
  396. data/features/locator/SimpleLocators.feature +0 -46
  397. data/features/locator/TermSelection.feature +0 -40
  398. data/features/locator/TrickyEntryForPlurals.feature +0 -40
  399. data/features/locator/WorkaroundTestForSubVerbo.feature +0 -47
  400. data/features/magic/AllowRepeatDateRenderings.feature +0 -47
  401. data/features/magic/CapitalizeFirstOccurringNameParticle.feature +0 -35
  402. data/features/magic/CapitalizeFirstOccurringTerm.feature +0 -33
  403. data/features/magic/CitationLabelInBibliography.feature +0 -234
  404. data/features/magic/CitationLabelInCitation.feature +0 -224
  405. data/features/magic/EntrySpacingDouble.feature +0 -52
  406. data/features/magic/HangingIndent.feature +0 -52
  407. data/features/magic/ImplicitYearSuffixDelimiter.feature +0 -38
  408. data/features/magic/ImplicitYearSuffixExplicitDelimiter.feature +0 -52
  409. data/features/magic/LineSpacingDouble.feature +0 -52
  410. data/features/magic/LineSpacingTripleStretch.feature +0 -52
  411. data/features/magic/NameParticle.feature +0 -35
  412. data/features/magic/NameSuffixNoComma.feature +0 -35
  413. data/features/magic/NameSuffixWithComma.feature +0 -35
  414. data/features/magic/NumberRangeEnglish.feature +0 -33
  415. data/features/magic/NumberRangeFrench.feature +0 -34
  416. data/features/magic/PunctuationInQuoteDefaultEnglishDelimiter.feature +0 -41
  417. data/features/magic/PunctuationInQuoteDefaultEnglishSuffix.feature +0 -39
  418. data/features/magic/PunctuationInQuoteDelimiterTrue.feature +0 -44
  419. data/features/magic/PunctuationInQuoteFalse.feature +0 -44
  420. data/features/magic/PunctuationInQuoteFalseSuppressExtra.feature +0 -37
  421. data/features/magic/PunctuationInQuoteNested.feature +0 -47
  422. data/features/magic/PunctuationInQuoteSuffixTrue.feature +0 -42
  423. data/features/magic/PunctuationInQuoteTrueSuppressExtra.feature +0 -37
  424. data/features/magic/QuotesAndBraces1.feature +0 -36
  425. data/features/magic/QuotesAndBraces2.feature +0 -36
  426. data/features/magic/SecondFieldAlign.feature +0 -57
  427. data/features/magic/StripPeriodsExcludeAffixes.feature +0 -44
  428. data/features/magic/StripPeriodsFalse.feature +0 -34
  429. data/features/magic/StripPeriodsTrue.feature +0 -34
  430. data/features/magic/StripPeriodsTrueShortForm.feature +0 -46
  431. data/features/magic/SubsequentAuthorSubstitute.feature +0 -55
  432. data/features/magic/SubsequentAuthorSubstituteNotFooled.feature +0 -497
  433. data/features/magic/SubsequentAuthorSubstituteOfTitleField.feature +0 -55
  434. data/features/magic/SuperscriptChars.feature +0 -241
  435. data/features/magic/SuppressDuplicateVariableRendering.feature +0 -43
  436. data/features/magic/SuppressExtraTerminalPunctuationAfterTerm.feature +0 -410
  437. data/features/magic/SuppressLayoutDelimiterIfPrefixComma.feature +0 -34
  438. data/features/magic/TermCapitalizationWithPrefix.feature +0 -49
  439. data/features/magic/TextRangeEnglish.feature +0 -33
  440. data/features/magic/TextRangeFrench.feature +0 -34
  441. data/features/name/AfterInvertedName.feature +0 -42
  442. data/features/name/AllCapsInitialsUntouched.feature +0 -46
  443. data/features/name/AndTextDelimiterPrecedesLastAlways.feature +0 -35
  444. data/features/name/ArticularNameAsSortOrder.feature +0 -35
  445. data/features/name/ArticularPlain.feature +0 -35
  446. data/features/name/ArticularShortForm.feature +0 -35
  447. data/features/name/ArticularShortFormCommaSuffix.feature +0 -35
  448. data/features/name/ArticularWithComma.feature +0 -35
  449. data/features/name/ArticularWithCommaNameAsSortOrder.feature +0 -35
  450. data/features/name/Asian.feature +0 -35
  451. data/features/name/AsianGlyphs.feature +0 -35
  452. data/features/name/AuthorCount.feature +0 -39
  453. data/features/name/AuthorCountWithMultipleVariables.feature +0 -37
  454. data/features/name/AuthorCountWithSameVarContentAndCombinedTermFail.feature +0 -45
  455. data/features/name/AuthorCountWithSameVarContentAndCombinedTermSucceed.feature +0 -45
  456. data/features/name/AuthorEditorCount.feature +0 -37
  457. data/features/name/CelticClanName.feature +0 -35
  458. data/features/name/CeltsAndToffsCrowdedInitials.feature +0 -35
  459. data/features/name/CeltsAndToffsNoHyphens.feature +0 -36
  460. data/features/name/CeltsAndToffsSpacedInitials.feature +0 -35
  461. data/features/name/CeltsAndToffsWithHyphens.feature +0 -36
  462. data/features/name/CollapseRoleLabels.feature +0 -46
  463. data/features/name/Delimiter.feature +0 -37
  464. data/features/name/EditorTranslatorBoth.feature +0 -189
  465. data/features/name/EditorTranslatorSameEmptyTerm.feature +0 -41
  466. data/features/name/EditorTranslatorSameWithTerm.feature +0 -36
  467. data/features/name/EditorTranslatorWithTranslatorOnly.feature +0 -35
  468. data/features/name/EditorTranslatorWithTranslatorOnlyBib.feature +0 -189
  469. data/features/name/EtAlUseLast.feature +0 -47
  470. data/features/name/FormattingOfParticles.feature +0 -37
  471. data/features/name/GreekSimple.feature +0 -35
  472. data/features/name/HebrewAnd.feature +0 -40
  473. data/features/name/HierarchicalDelimiter.feature +0 -35
  474. data/features/name/HyphenatedFirstName.feature +0 -35
  475. data/features/name/HyphenatedNonDroppingParticle1.feature +0 -51
  476. data/features/name/HyphenatedNonDroppingParticle2.feature +0 -51
  477. data/features/name/InheritAttributesEtAlStyle.feature +0 -37
  478. data/features/name/Institution.feature +0 -35
  479. data/features/name/InstitutionDecoration.feature +0 -45
  480. data/features/name/LabelAfterPlural.feature +0 -36
  481. data/features/name/LabelAfterPluralDecorations.feature +0 -38
  482. data/features/name/LongAbbreviation.feature +0 -35
  483. data/features/name/LowercaseSurnameSuffix.feature +0 -35
  484. data/features/name/MixedFormatsInitialSortOrderAllWithDecorationsEtAl.feature +0 -39
  485. data/features/name/MixedFormatsInitialSortOrderFirstWithDecorationsEtAl.feature +0 -39
  486. data/features/name/MixedFormatsInitialsWithDecorationsEtAl.feature +0 -39
  487. data/features/name/MixedFormatsPrimaryDecorations.feature +0 -37
  488. data/features/name/MixedFormatsWithDecorationsEtAl.feature +0 -39
  489. data/features/name/MixedFormatsWithDecorationsPlusAlternateEtAlDecorations.feature +0 -40
  490. data/features/name/MixedFormatsWithDecorationsPlusEtAlDecorations.feature +0 -40
  491. data/features/name/MultipleLiteral.feature +0 -35
  492. data/features/name/NoNameNode.feature +0 -33
  493. data/features/name/NonDroppingParticleDefault.feature +0 -35
  494. data/features/name/OnlyFamilyname.feature +0 -35
  495. data/features/name/OnlyGivenname.feature +0 -35
  496. data/features/name/OverridingHierarchicalDelimiter.feature +0 -36
  497. data/features/name/ParseNames.feature +0 -39
  498. data/features/name/ParsedCommaDelimitedDroppingParticleNormalOrderingWithAffixes.feature +0 -38
  499. data/features/name/ParsedCommaDelimitedDroppingParticleNormalOrderingWithoutAffixes.feature +0 -36
  500. data/features/name/ParsedCommaDelimitedDroppingParticleSortOrderingWithoutAffixes.feature +0 -38
  501. data/features/name/ParsedDroppingParticleWithAffixes.feature +0 -39
  502. data/features/name/ParsedDroppingParticleWithApostrophe.feature +0 -38
  503. data/features/name/ParsedNonDroppingParticleWithAffixes.feature +0 -39
  504. data/features/name/ParsedNonDroppingParticleWithApostrophe.feature +0 -39
  505. data/features/name/ParsedUpperCaseNonDroppingParticle.feature +0 -39
  506. data/features/name/ParticleCaps1.feature +0 -40
  507. data/features/name/ParticleCaps2.feature +0 -46
  508. data/features/name/ParticleCaps3.feature +0 -47
  509. data/features/name/ParticleFormatting.feature +0 -38
  510. data/features/name/ParticlesDemoteNonDroppingNever.feature +0 -99
  511. data/features/name/PeriodAfterInitials.feature +0 -38
  512. data/features/name/QuashOrdinaryVariableRenderedViaSubstitute.feature +0 -39
  513. data/features/name/RomanianTwo.feature +0 -36
  514. data/features/name/SemicolonWithAnd.feature +0 -38
  515. data/features/name/SplitInitials.feature +0 -35
  516. data/features/name/SubsequentAuthorSubstituteMultipleNames.feature +0 -50
  517. data/features/name/SubstituteInheritLabel.feature +0 -44
  518. data/features/name/SubstituteMacroInheritDecorations.feature +0 -42
  519. data/features/name/SubstituteName.feature +0 -38
  520. data/features/name/SubstituteOnDateGroupSpanFail.feature +0 -45
  521. data/features/name/SubstituteOnGroupSpanGroupSpanFail.feature +0 -46
  522. data/features/name/SubstituteOnMacroGroupSpanFail.feature +0 -46
  523. data/features/name/SubstituteOnNamesSingletonGroupSpanFail.feature +0 -42
  524. data/features/name/SubstituteOnNamesSpanGroupSpanFail.feature +0 -44
  525. data/features/name/SubstituteOnNamesSpanNamesSpanFail.feature +0 -43
  526. data/features/name/SubstituteOnNumberGroupSpanFail.feature +0 -42
  527. data/features/name/TwoRolesSameRenderingSeparateRoleLabels.feature +0 -43
  528. data/features/name/WesternArticularLowercase.feature +0 -35
  529. data/features/name/WesternPrimaryFontStyle.feature +0 -37
  530. data/features/name/WesternPrimaryFontStyleTwoAuthors.feature +0 -37
  531. data/features/name/WesternSimple.feature +0 -35
  532. data/features/name/WesternTwoAuthors.feature +0 -35
  533. data/features/name/namepartAffixes.feature +0 -38
  534. data/features/name/namepartAffixesNameAsSortOrder.feature +0 -39
  535. data/features/name/namepartAffixesNameAsSortOrderDemoteNonDroppingParticle.feature +0 -39
  536. data/features/nameattr/AndOnBibliographyInBibliography.feature +0 -43
  537. data/features/nameattr/AndOnBibliographyInCitation.feature +0 -43
  538. data/features/nameattr/AndOnCitationInBibliography.feature +0 -45
  539. data/features/nameattr/AndOnCitationInCitation.feature +0 -36
  540. data/features/nameattr/AndOnNamesInBibliography.feature +0 -42
  541. data/features/nameattr/AndOnNamesInCitation.feature +0 -35
  542. data/features/nameattr/AndOnStyleInBibliography.feature +0 -43
  543. data/features/nameattr/AndOnStyleInCitation.feature +0 -43
  544. data/features/nameattr/DelimiterPrecedesEtAlOnBibliographyInBibliography.feature +0 -43
  545. data/features/nameattr/DelimiterPrecedesEtAlOnBibliographyInCitation.feature +0 -43
  546. data/features/nameattr/DelimiterPrecedesEtAlOnCitationInBibliography.feature +0 -45
  547. data/features/nameattr/DelimiterPrecedesEtAlOnCitationInCitation.feature +0 -36
  548. data/features/nameattr/DelimiterPrecedesEtAlOnNamesInBibliography.feature +0 -42
  549. data/features/nameattr/DelimiterPrecedesEtAlOnNamesInCitation.feature +0 -35
  550. data/features/nameattr/DelimiterPrecedesEtAlOnStyleInBibliography.feature +0 -43
  551. data/features/nameattr/DelimiterPrecedesEtAlOnStyleInCitation.feature +0 -36
  552. data/features/nameattr/DelimiterPrecedesLastOnBibliographyInBibliography.feature +0 -43
  553. data/features/nameattr/DelimiterPrecedesLastOnBibliographyInCitation.feature +0 -43
  554. data/features/nameattr/DelimiterPrecedesLastOnCitationInBibliography.feature +0 -45
  555. data/features/nameattr/DelimiterPrecedesLastOnCitationInCitation.feature +0 -36
  556. data/features/nameattr/DelimiterPrecedesLastOnNamesInBibliography.feature +0 -42
  557. data/features/nameattr/DelimiterPrecedesLastOnNamesInCitation.feature +0 -35
  558. data/features/nameattr/DelimiterPrecedesLastOnStyleInBibliography.feature +0 -43
  559. data/features/nameattr/DelimiterPrecedesLastOnStyleInCitation.feature +0 -36
  560. data/features/nameattr/EtAlMinOnBibliographyInBibliography.feature +0 -43
  561. data/features/nameattr/EtAlMinOnBibliographyInCitation.feature +0 -43
  562. data/features/nameattr/EtAlMinOnCitationInBibliography.feature +0 -45
  563. data/features/nameattr/EtAlMinOnCitationInCitation.feature +0 -36
  564. data/features/nameattr/EtAlMinOnNamesInBibliography.feature +0 -42
  565. data/features/nameattr/EtAlMinOnNamesInCitation.feature +0 -35
  566. data/features/nameattr/EtAlMinOnStyleInBibliography.feature +0 -42
  567. data/features/nameattr/EtAlMinOnStyleInCitation.feature +0 -35
  568. data/features/nameattr/EtAlSubsequentMinOnBibliographyInBibliography.feature +0 -43
  569. data/features/nameattr/EtAlSubsequentMinOnBibliographyInCitation.feature +0 -43
  570. data/features/nameattr/EtAlSubsequentMinOnCitationInBibliography.feature +0 -45
  571. data/features/nameattr/EtAlSubsequentMinOnCitationInCitation.feature +0 -37
  572. data/features/nameattr/EtAlSubsequentMinOnNamesInBibliography.feature +0 -42
  573. data/features/nameattr/EtAlSubsequentMinOnStyleInBibliography.feature +0 -42
  574. data/features/nameattr/EtAlSubsequentMinOnStyleInCitation.feature +0 -38
  575. data/features/nameattr/EtAlSubsequentUseFirstOnBibliographyInBibliography.feature +0 -43
  576. data/features/nameattr/EtAlSubsequentUseFirstOnBibliographyInCitation.feature +0 -43
  577. data/features/nameattr/EtAlSubsequentUseFirstOnCitationInBibliography.feature +0 -45
  578. data/features/nameattr/EtAlSubsequentUseFirstOnCitationInCitation.feature +0 -44
  579. data/features/nameattr/EtAlSubsequentUseFirstOnStyleInBibliography.feature +0 -43
  580. data/features/nameattr/EtAlSubsequentUseFirstOnStyleInCitation.feature +0 -37
  581. data/features/nameattr/EtAlUseFirstOnBibliographyInBibliography.feature +0 -43
  582. data/features/nameattr/EtAlUseFirstOnBibliographyInCitation.feature +0 -43
  583. data/features/nameattr/EtAlUseFirstOnCitationInBibliography.feature +0 -45
  584. data/features/nameattr/EtAlUseFirstOnCitationInCitation.feature +0 -43
  585. data/features/nameattr/EtAlUseFirstOnNamesInBibliography.feature +0 -42
  586. data/features/nameattr/EtAlUseFirstOnNamesInCitation.feature +0 -35
  587. data/features/nameattr/EtAlUseFirstOnStyleInBibliography.feature +0 -43
  588. data/features/nameattr/EtAlUseFirstOnStyleInCitation.feature +0 -35
  589. data/features/nameattr/InitializeWithOnBibliographyInBibliography.feature +0 -43
  590. data/features/nameattr/InitializeWithOnBibliographyInCitation.feature +0 -43
  591. data/features/nameattr/InitializeWithOnCitationInBibliography.feature +0 -45
  592. data/features/nameattr/InitializeWithOnCitationInCitation.feature +0 -36
  593. data/features/nameattr/InitializeWithOnNamesInBibliography.feature +0 -42
  594. data/features/nameattr/InitializeWithOnNamesInCitation.feature +0 -35
  595. data/features/nameattr/InitializeWithOnStyleInBibliography.feature +0 -43
  596. data/features/nameattr/InitializeWithOnStyleInCitation.feature +0 -36
  597. data/features/nameattr/NameAsSortOrderOnBibliographyInBibliography.feature +0 -43
  598. data/features/nameattr/NameAsSortOrderOnBibliographyInCitation.feature +0 -43
  599. data/features/nameattr/NameAsSortOrderOnCitationInBibliography.feature +0 -45
  600. data/features/nameattr/NameAsSortOrderOnCitationInCitation.feature +0 -36
  601. data/features/nameattr/NameAsSortOrderOnNamesInBibliography.feature +0 -42
  602. data/features/nameattr/NameAsSortOrderOnNamesInCitation.feature +0 -35
  603. data/features/nameattr/NameAsSortOrderOnStyleInBibliography.feature +0 -43
  604. data/features/nameattr/NameAsSortOrderOnStyleInCitation.feature +0 -35
  605. data/features/nameattr/NameDelimiterOnBibliographyInBibliography.feature +0 -43
  606. data/features/nameattr/NameDelimiterOnBibliographyInCitation.feature +0 -43
  607. data/features/nameattr/NameDelimiterOnCitationInBibliography.feature +0 -45
  608. data/features/nameattr/NameDelimiterOnCitationInCitation.feature +0 -43
  609. data/features/nameattr/NameDelimiterOnNamesInBibliography.feature +0 -42
  610. data/features/nameattr/NameDelimiterOnNamesInCitation.feature +0 -42
  611. data/features/nameattr/NameDelimiterOnStyleInBibliography.feature +0 -43
  612. data/features/nameattr/NameDelimiterOnStyleInCitation.feature +0 -43
  613. data/features/nameattr/NameFormOnBibliographyInBibliography.feature +0 -43
  614. data/features/nameattr/NameFormOnBibliographyInCitation.feature +0 -43
  615. data/features/nameattr/NameFormOnCitationInBibliography.feature +0 -45
  616. data/features/nameattr/NameFormOnCitationInCitation.feature +0 -43
  617. data/features/nameattr/NameFormOnNamesInBibliography.feature +0 -42
  618. data/features/nameattr/NameFormOnNamesInCitation.feature +0 -35
  619. data/features/nameattr/NameFormOnStyleInBibliography.feature +0 -43
  620. data/features/nameattr/NameFormOnStyleInCitation.feature +0 -36
  621. data/features/nameattr/NamesDelimiterOnBibliographyInBibliography.feature +0 -43
  622. data/features/nameattr/NamesDelimiterOnBibliographyInCitation.feature +0 -43
  623. data/features/nameattr/NamesDelimiterOnCitationInBibliography.feature +0 -45
  624. data/features/nameattr/NamesDelimiterOnCitationInCitation.feature +0 -36
  625. data/features/nameattr/NamesDelimiterOnNamesInBibliography.feature +0 -42
  626. data/features/nameattr/NamesDelimiterOnNamesInCitation.feature +0 -35
  627. data/features/nameattr/NamesDelimiterOnStyleInBibliography.feature +0 -42
  628. data/features/nameattr/NamesDelimiterOnStyleInCitation.feature +0 -36
  629. data/features/nameattr/SortSeparatorOnBibliographyInBibliography.feature +0 -43
  630. data/features/nameattr/SortSeparatorOnBibliographyInCitation.feature +0 -44
  631. data/features/nameattr/SortSeparatorOnCitationInBibliography.feature +0 -45
  632. data/features/nameattr/SortSeparatorOnCitationInCitation.feature +0 -36
  633. data/features/nameattr/SortSeparatorOnNamesInBibliography.feature +0 -42
  634. data/features/nameattr/SortSeparatorOnNamesInCitation.feature +0 -35
  635. data/features/nameattr/SortSeparatorOnStyleInBibliography.feature +0 -43
  636. data/features/nameattr/SortSeparatorOnStyleInCitation.feature +0 -36
  637. data/features/nameorder/Long.feature +0 -35
  638. data/features/nameorder/LongNameAsSortDemoteDisplayAndSort.feature +0 -36
  639. data/features/nameorder/LongNameAsSortDemoteNever.feature +0 -36
  640. data/features/nameorder/Short.feature +0 -35
  641. data/features/nameorder/ShortDemoteDisplayAndSort.feature +0 -36
  642. data/features/nameorder/ShortNameAsSortDemoteNever.feature +0 -36
  643. data/features/namespaces/NonNada3.feature +0 -33
  644. data/features/number/EditionSort.feature +0 -47
  645. data/features/number/FailingDelimiters.feature +0 -44
  646. data/features/number/IsNumericWithAlpha.feature +0 -40
  647. data/features/number/MixedPageRange.feature +0 -34
  648. data/features/number/MixedText.feature +0 -33
  649. data/features/number/NewOrdinals.feature +0 -64
  650. data/features/number/NewOrdinalsEdition.feature +0 -1044
  651. data/features/number/NewOrdinalsWithGenderChange.feature +0 -45
  652. data/features/number/PageFirst.feature +0 -36
  653. data/features/number/PageRange.feature +0 -33
  654. data/features/number/PlainHyphenOrEnDashAlwaysPlural.feature +0 -42
  655. data/features/number/SeparateOrdinalNamespaces.feature +0 -55
  656. data/features/number/SimpleNumberArabic.feature +0 -33
  657. data/features/number/SimpleNumberOrdinalLong.feature +0 -35
  658. data/features/number/SimpleNumberOrdinalShort.feature +0 -33
  659. data/features/number/SimpleNumberRoman.feature +0 -33
  660. data/features/number/StrangeError.feature +0 -34
  661. data/features/page/Chicago.feature +0 -55
  662. data/features/page/Expand.feature +0 -42
  663. data/features/page/Minimal.feature +0 -55
  664. data/features/page/NoOption.feature +0 -34
  665. data/features/page/NumberPageFirst.feature +0 -33
  666. data/features/page/PluralDetectWithEndash.feature +0 -33
  667. data/features/parallel/Bibliography.feature +0 -87
  668. data/features/parallel/HackedChicago.feature +0 -715
  669. data/features/parallel/JournalArticleReverse.feature +0 -46
  670. data/features/parallel/JournalArticleSimple.feature +0 -46
  671. data/features/parallel/TrailingIbid.feature +0 -69
  672. data/features/plural/LabelForced.feature +0 -37
  673. data/features/plural/NameLabelAlways.feature +0 -36
  674. data/features/plural/NameLabelContextualPlural.feature +0 -36
  675. data/features/plural/NameLabelContextualSingular.feature +0 -36
  676. data/features/plural/NameLabelDefaultPlural.feature +0 -36
  677. data/features/plural/NameLabelDefaultSingular.feature +0 -36
  678. data/features/plural/NameLabelNever.feature +0 -36
  679. data/features/position/FalseInBibliography.feature +0 -47
  680. data/features/position/FirstTrueOnlyOnce.feature +0 -55
  681. data/features/position/IbidInText.feature +0 -51
  682. data/features/position/IbidSeparateCiteSameNote.feature +0 -80
  683. data/features/position/IbidWithLocator.feature +0 -52
  684. data/features/position/IbidWithMultipleSoloCitesInBackref.feature +0 -52
  685. data/features/position/IbidWithPrefixFullStop.feature +0 -44
  686. data/features/position/IbidWithSuffix.feature +0 -54
  687. data/features/position/IfIbidIsTrueThenSubsequentIsTrue.feature +0 -61
  688. data/features/position/IfIbidWithLocatorIsTrueThenIbidIsTrue.feature +0 -58
  689. data/features/position/NearNoteFalse.feature +0 -41
  690. data/features/position/NearNoteSameNote.feature +0 -43
  691. data/features/position/NearNoteTrue.feature +0 -41
  692. data/features/position/NearNoteUnsupported.feature +0 -40
  693. data/features/position/NearNoteWithPlugin.feature +0 -454
  694. data/features/position/ResetNoteNumbers.feature +0 -54
  695. data/features/position/TrueInCitation.feature +0 -45
  696. data/features/punctuation/DateStripPeriods.feature +0 -36
  697. data/features/punctuation/DefaultYearSuffixDelimiter.feature +0 -183
  698. data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute1.feature +0 -53
  699. data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute2.feature +0 -52
  700. data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute3.feature +0 -60
  701. data/features/punctuation/DoNotSuppressColonAfterPeriod.feature +0 -34
  702. data/features/punctuation/FrenchOrthography.feature +0 -33
  703. data/features/punctuation/FullMontyField.feature +0 -230
  704. data/features/punctuation/FullMontyPlain.feature +0 -230
  705. data/features/punctuation/FullMontyQuotesIn.feature +0 -233
  706. data/features/punctuation/FullMontyQuotesOut.feature +0 -233
  707. data/features/punctuation/NoSuppressOfPeriodBeforeSemicolon.feature +0 -36
  708. data/features/punctuation/SemicolonDelimiter.feature +0 -62
  709. data/features/punctuation/SuppressPrefixPeriodForDelimiterSemicolon.feature +0 -715
  710. data/features/quotes/Punctuation.feature +0 -43
  711. data/features/quotes/PunctuationNasty.feature +0 -977
  712. data/features/quotes/PunctuationWithInnerQuote.feature +0 -43
  713. data/features/simplespace/case1.feature +0 -202
  714. data/features/sort/AguStyle.feature +0 -94
  715. data/features/sort/AguStyleReverseGroups.feature +0 -94
  716. data/features/sort/AuthorDateWithYearSuffix.feature +0 -202
  717. data/features/sort/BibliographyCitationNumberDescending.feature +0 -51
  718. data/features/sort/BibliographyCitationNumberDescendingViaMacro.feature +0 -54
  719. data/features/sort/BibliographyNosortOption.feature +0 -44
  720. data/features/sort/CaseInsensitiveBibliography.feature +0 -55
  721. data/features/sort/CaseInsensitiveCitation.feature +0 -36
  722. data/features/sort/ChangeInNameSort.feature +0 -54
  723. data/features/sort/ChicagoYearSuffix1.feature +0 -391
  724. data/features/sort/ChicagoYearSuffix2.feature +0 -391
  725. data/features/sort/Citation.feature +0 -42
  726. data/features/sort/CitationEdit.feature +0 -49
  727. data/features/sort/CitationSecondaryKey.feature +0 -46
  728. data/features/sort/CitationUnsorted.feature +0 -42
  729. data/features/sort/CiteGroupDelimiter.feature +0 -45
  730. data/features/sort/ConditionalMacroDates.feature +0 -64
  731. data/features/sort/DateMacroSortWithSecondFieldAlign.feature +0 -56
  732. data/features/sort/DateVariable.feature +0 -36
  733. data/features/sort/DateVariableMixedElementsAscendingA.feature +0 -36
  734. data/features/sort/DateVariableMixedElementsAscendingB.feature +0 -36
  735. data/features/sort/DateVariableMixedElementsDescendingA.feature +0 -36
  736. data/features/sort/DateVariableMixedElementsDescendingB.feature +0 -36
  737. data/features/sort/DateVariableRange.feature +0 -36
  738. data/features/sort/DateVariableRangeMixed.feature +0 -36
  739. data/features/sort/DropNameLabelInSort.feature +0 -116
  740. data/features/sort/EtAlUseLast.feature +0 -54
  741. data/features/sort/FamilyOnly.feature +0 -45
  742. data/features/sort/GroupedByAuthorstring.feature +0 -50
  743. data/features/sort/LatinUnicode.feature +0 -42
  744. data/features/sort/LeadingApostropheOnNameParticle.feature +0 -55
  745. data/features/sort/LocalizedDateLimitedParts.feature +0 -40
  746. data/features/sort/NameImplicitSortOrderAndForm.feature +0 -51
  747. data/features/sort/NameParticleInNameSortFalse.feature +0 -48
  748. data/features/sort/NameParticleInNameSortTrue.feature +0 -48
  749. data/features/sort/NameVariable.feature +0 -47
  750. data/features/sort/NamesUseLast.feature +0 -64
  751. data/features/sort/NumberOfAuthorsAsKey.feature +0 -68
  752. data/features/sort/SeparateAuthorsAndOthers.feature +0 -127
  753. data/features/sort/StatusFieldAscending.feature +0 -46
  754. data/features/sort/StatusFieldDescending.feature +0 -46
  755. data/features/sort/StripMarkup.feature +0 -39
  756. data/features/sort/SubstituteTitle.feature +0 -398
  757. data/features/sort/VariousNameMacros1.feature +0 -287
  758. data/features/sort/VariousNameMacros2.feature +0 -287
  759. data/features/sort/VariousNameMacros3.feature +0 -288
  760. data/features/sort/WithAndInOneEntry.feature +0 -228
  761. data/features/sortseparator/SortSeparatorEmpty.feature +0 -44
  762. data/features/step_definitions/processor.rb +0 -59
  763. data/features/substitute/RepeatedNamesOk.feature +0 -52
  764. data/features/substitute/SuppressOrdinaryVariable.feature +0 -79
  765. data/features/support/env.rb +0 -49
  766. data/features/testers/FirstAutoGeneratedZoteroPluginTest.feature +0 -715
  767. data/features/testers/SecondAutoGeneratedZoteroPluginTest.feature +0 -717
  768. data/features/textcase/CapitalizeAll.feature +0 -33
  769. data/features/textcase/CapitalizeFirst.feature +0 -33
  770. data/features/textcase/CapitalizeFirstWithDecor.feature +0 -33
  771. data/features/textcase/CapitalsUntouched.feature +0 -37
  772. data/features/textcase/Lowercase.feature +0 -33
  773. data/features/textcase/SentenceCapitalization.feature +0 -33
  774. data/features/textcase/SkipNameParticlesInTitleCase.feature +0 -33
  775. data/features/textcase/TitleCapitalization.feature +0 -33
  776. data/features/textcase/TitleCaseNonEnglish.feature +0 -33
  777. data/features/textcase/TitleCaseNonEnglish2.feature +0 -34
  778. data/features/textcase/TitleCaseWithHyphens.feature +0 -33
  779. data/features/textcase/TitleCaseWithInitials.feature +0 -33
  780. data/features/textcase/Uppercase.feature +0 -59
  781. data/features/textcase/UppercaseNumber.feature +0 -33
  782. data/features/unicode/NonBreakingSpace.feature +0 -34
  783. data/features/variables/ShortForm.feature +0 -54
  784. data/features/variables/TitleShortOnAbbrevWithTitle.feature +0 -37
  785. data/features/variables/TitleShortOnAbbrevWithTitleCondition.feature +0 -57
  786. data/features/variables/TitleShortOnAbbrevWithTitleGroup.feature +0 -44
  787. data/features/variables/TitleShortOnShortTitleNoTitle.feature +0 -33
  788. data/features/variables/TitleShortOnShortTitleNoTitleCondition.feature +0 -53
  789. data/features/variables/TitleShortOnShortTitleNoTitleGroup.feature +0 -40
  790. data/features/virtual/PageFirst.feature +0 -37
  791. data/spec/citeproc/abbreviate_spec.rb +0 -37
  792. data/spec/citeproc/assets_spec.rb +0 -72
  793. data/spec/citeproc/attributes_spec.rb +0 -97
  794. data/spec/citeproc/bibliography_spec.rb +0 -72
  795. data/spec/citeproc/citation_data_spec.rb +0 -94
  796. data/spec/citeproc/date_spec.rb +0 -423
  797. data/spec/citeproc/engine_spec.rb +0 -19
  798. data/spec/citeproc/extensions_spec.rb +0 -89
  799. data/spec/citeproc/item_spec.rb +0 -91
  800. data/spec/citeproc/names_spec.rb +0 -646
  801. data/spec/citeproc/processor_spec.rb +0 -127
  802. data/spec/citeproc/selector_spec.rb +0 -90
  803. data/spec/citeproc/utilities_spec.rb +0 -12
  804. data/spec/citeproc/variable_spec.rb +0 -196
  805. data/spec/fixtures/locales/locales-en-US.xml +0 -304
  806. data/spec/spec_helper.rb +0 -42
  807. data/tasks/testsuite.rb +0 -206
@@ -1,72 +0,0 @@
1
- module CiteProc
2
-
3
- describe 'Assets' do
4
-
5
- before(:all) do
6
- @file = Tempfile.new('asset')
7
- @file.write("asset content\n")
8
- @file.close
9
-
10
- @root = File.dirname(@file.path)
11
- @name = File.basename(@file.path)
12
-
13
- @extension = File.extname(@name)
14
- end
15
-
16
- after(:all) { @file.unlink }
17
-
18
- describe 'Style' do
19
-
20
- before(:all) do
21
- @default_root = Style.root
22
- @default_extension = Style.extension
23
- Style.root = @root
24
- Style.extension = @extension
25
- end
26
-
27
- after(:all) do
28
- Style.root = @default_root
29
- Style.extension = @default_extension
30
- end
31
-
32
- it 'should not be open by default' do
33
- expect(Style.new).not_to be_open
34
- end
35
-
36
- describe '.open' do
37
-
38
- it 'accepts an absolute file name' do
39
- expect(Style.open(@file.path).to_s).to eq("asset content\n")
40
- end
41
-
42
- it 'accepts a file name' do
43
- expect(Style.open(@name).to_s).to eq("asset content\n")
44
- end
45
-
46
- it 'accepts a file name without extension' do
47
- expect(Style.open(@name.sub(/#{@extension}$/,'')).to_s).to eq("asset content\n")
48
- end
49
-
50
-
51
- it 'accepts an io object' do
52
- expect(Style.open(@file.open).to_s).to eq("asset content\n")
53
- end
54
-
55
- it 'returns the given string if it looks like XML' do
56
- expect(Style.open('<b>foo bar!</b>').to_s).to eq('<b>foo bar!</b>')
57
- end
58
- end
59
-
60
- describe '.extend_name' do
61
- it 'adds the default extension if the file does not already end with it' do
62
- expect(Style.extend_name(@name.sub(/#{@extension}$/,''))).to eq(@name)
63
- end
64
-
65
- it 'does not add the default extension if the file already ends with it' do
66
- expect(Style.extend_name(@name)).to eq(@name)
67
- end
68
- end
69
-
70
- end
71
- end
72
- end
@@ -1,97 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module CiteProc
4
- describe Attributes do
5
-
6
- before(:all) do
7
- A = Class.new { include Attributes }
8
- end
9
-
10
- let(:instance) do
11
- o = A.new
12
- o[:bar] = 'foo'
13
- o
14
- end
15
-
16
- let(:other) do
17
- o = A.new
18
- o[:foo] = 'bar'
19
- o
20
- end
21
-
22
- it { is_expected.not_to be_nil }
23
-
24
- describe '.attr_fields' do
25
-
26
- # before(:all) do
27
- # A.instance_eval { attr_fields :value, %w[ is-numeric punctuation-mode ] }
28
- # end
29
-
30
- it 'generates setters for attr_field values' do
31
- # pending
32
- # lambda { A.new.is_numeric }.should_not raise_error
33
- end
34
-
35
- it 'generates no other setters' do
36
- expect { A.new.some_other_value }.to raise_error(NoMethodError)
37
- end
38
- end
39
-
40
- describe '#merge' do
41
-
42
- it 'merges non-existent values from other object' do
43
- expect(A.new.merge(other)[:foo]).to eq('bar')
44
- end
45
-
46
- it 'does not overwrite existing values when merging other object' do
47
- expect(instance.merge(other)[:bar]).to eq('foo')
48
- end
49
-
50
- end
51
-
52
- describe '#attribute?' do
53
- it 'return false for unset attribute' do
54
- expect(A.new.attribute?(:foo)).to eq(false)
55
- end
56
-
57
- it 'return false for empty attribute value' do
58
- a = A.new
59
- a[:foo]=''
60
- expect(a.attribute?(:foo)).to eq(false)
61
- end
62
-
63
- it 'return false for attribute value set to string "false"' do
64
- a = A.new
65
- a[:foo]='false'
66
- expect(a.attribute?(:foo)).to eq(false)
67
- end
68
- it 'return false for attribute value set to string "no"' do
69
- a = A.new
70
- a[:foo]='no'
71
- expect(a.attribute?(:foo)).to eq(false)
72
- end
73
- it 'return false for attribute value set to string "never"' do
74
- a = A.new
75
- a[:foo]='never'
76
- expect(a.attribute?(:foo)).to eq(false)
77
- end
78
- it 'return true for attribute with value' do
79
- a = A.new
80
- a[:foo]='bar'
81
- expect(a.attribute?(:foo)).to eq(true)
82
- end
83
-
84
- describe 'properly handle usage on Observable objects' do
85
- it 'should use unobservable_read_attribute method when available' do
86
- a = A.new
87
- def a.unobservable_read_attribute(attr)
88
- return 'tuna'
89
- end
90
- expect(a).to receive(:unobservable_read_attribute)
91
- a.attribute?(:foo)
92
- end
93
- end
94
- end
95
-
96
- end
97
- end
@@ -1,72 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module CiteProc
4
-
5
- describe Bibliography do
6
-
7
- it { is_expected.to be_empty }
8
- it { is_expected.not_to have_errors }
9
-
10
- describe '#to_citeproc conversion' do
11
-
12
- it 'returns an array' do
13
- expect(subject.to_citeproc).to be_a(Array)
14
- end
15
-
16
- it 'returns exactly two elements' do
17
- expect(subject.to_citeproc.size).to eq(2)
18
- end
19
-
20
- it 'returns formatting options as the first element' do
21
- expect(subject.to_citeproc.first).to be_a(Hash)
22
- end
23
-
24
- describe 'the formatting options' do
25
- let(:options) { subject.to_citeproc[0] }
26
-
27
- it 'contains a the error list' do
28
- expect(options).to have_key('bibliography_errors')
29
- expect(options['bibliography_errors']).to be_empty
30
- end
31
-
32
- end
33
-
34
- it 'returns the list of references as the second element' do
35
- expect(subject.to_citeproc.last).to be_a(Array)
36
- end
37
-
38
- end
39
-
40
- describe '.create (citeproc parser)' do
41
- let(:js) { <<-JS_END }
42
- [
43
- {
44
- "maxoffset": 0,
45
- "entryspacing": 0,
46
- "linespacing": 0,
47
- "hangingindent": 0,
48
- "second-field-align": true,
49
- "bibstart": "<div class=\\"csl-bib-body\\">\\n",
50
- "bibend": "</div>",
51
- "bibliography_errors": []
52
- },
53
- [
54
- "<div class=\\"csl-entry\\">Book A</div>",
55
- "<div class=\\"csl-entry\\">Book C</div>"
56
- ]
57
- ]
58
- JS_END
59
-
60
- it 'parses citeproc/json strings' do
61
- b = Bibliography.create!(js)
62
- expect(b).to be_a(Bibliography)
63
- expect(b.references.size).to eq(2)
64
- expect(b).not_to have_errors
65
- expect(b.options[:'second-field-align']).to be true
66
- end
67
-
68
- end
69
-
70
- end
71
-
72
- end
@@ -1,94 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module CiteProc
4
-
5
- describe 'citation input' do
6
-
7
- let(:hash) {{
8
- "citationItems" => [
9
- {
10
- "id" => "ITEM-1"
11
- }
12
- ],
13
- "properties" => {
14
- "noteIndex" => 1
15
- }
16
- }}
17
-
18
- let(:json) { ::JSON.dump(hash) }
19
-
20
-
21
-
22
- describe CitationData do
23
-
24
- it { is_expected.not_to be nil }
25
- it { is_expected.to be_empty }
26
-
27
- it 'has not been processed by default' do
28
- expect(CitationData.new).not_to be_processed
29
- end
30
-
31
- describe '.new' do
32
-
33
- it 'accepts a citeproc hash' do
34
- d = CitationData.new(hash)
35
- expect(d).to be_footnote
36
- expect(d).not_to be_empty
37
- expect(d[0]).to be_a(CitationItem)
38
- expect(d.index).to eq(1)
39
- end
40
-
41
- it 'accepts an array of items' do
42
- expect(CitationData.new([CitationItem.new(:id => 'id')]).items.size).to eq(1)
43
- end
44
-
45
- it 'accepts an array of hashes' do
46
- expect(CitationData.new([{:id => 'id'}])[0]).to be_a(CitationItem)
47
- end
48
-
49
- end
50
-
51
- describe '#to_citeproc' do
52
-
53
- it 'returns empty an empty/default citation data element by default' do
54
- expect(CitationData.new.to_citeproc).to eq({ 'citationItems' => [], 'properties' => { 'noteIndex' => 0}})
55
- end
56
-
57
-
58
- end
59
-
60
- end
61
-
62
- describe CitationItem do
63
-
64
- it { is_expected.not_to be nil }
65
- it { is_expected.to be_empty }
66
-
67
- describe '.new' do
68
-
69
- it 'accepts a hash as input' do
70
- expect(CitationItem.new(:label => 'chapter')).to have_label
71
- end
72
-
73
- end
74
-
75
- describe '#to_citeproc' do
76
-
77
- it 'returns empty citation data by default' do
78
- expect(CitationItem.new.to_citeproc).to eq({})
79
- end
80
-
81
- it 'returns a hash with stringified keys' do
82
- expect(CitationItem.new(:type => :article).to_citeproc).to have_key('type')
83
- end
84
-
85
- it 'returns a hash with stringified values' do
86
- expect(CitationItem.new(:type => :article).to_citeproc).to have_value('article')
87
- end
88
-
89
- end
90
-
91
- end
92
-
93
- end
94
- end
@@ -1,423 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module CiteProc
4
- describe Date do
5
-
6
- describe Date::DateParts do
7
- it { is_expected.not_to be_nil }
8
- it { is_expected.to be_empty }
9
-
10
- describe 'sorting' do
11
- it 'treats [2003] as less than [2003,1]' do
12
- expect(Date::DateParts.new(2003)).to be < Date::DateParts.new(2003,1)
13
- end
14
-
15
- it 'treats [1992,9,23] as less than [1993,8,22]' do
16
- expect(Date::DateParts.new(1992,9,23)).to be < Date::DateParts.new(1993,8,22)
17
- end
18
-
19
- it 'treats [1992,9,23] as less than [1992,10,22]' do
20
- expect(Date::DateParts.new(1992,9,23)).to be < Date::DateParts.new(1992,10,22)
21
- end
22
-
23
- it 'treats [1992,9,23] as less than [1992,9,24]' do
24
- expect(Date::DateParts.new(1992,9,23)).to be < Date::DateParts.new(1992,9,24)
25
- end
26
-
27
- it 'treats [-50] as less than [-25]' do
28
- expect(Date::DateParts.new(-50)).to be < Date::DateParts.new(-25)
29
- end
30
-
31
- it 'treats [-50] as less than [-50,12]' do
32
- expect(Date::DateParts.new(-50)).to be < Date::DateParts.new(-50,12)
33
- end
34
-
35
- it 'treats [1994,1,23] as less than today' do
36
- expect(Date::DateParts.new(1994,1,23)).to be < ::Date.today
37
- end
38
- end
39
-
40
- describe '#dup' do
41
- let(:date) { Date::DateParts.new(1991,8,22) }
42
-
43
- it 'creates a copy that contains the same parts' do
44
- expect(date.dup.to_a).to eq([1991,8,22])
45
- end
46
-
47
- it 'does not return self' do
48
- expect(date.dup).not_to equal(date)
49
- expect(date.dup).to eq(date)
50
- end
51
- end
52
-
53
- describe '#update' do
54
- it 'accepts a hash' do
55
- expect(Date::DateParts.new.update(:month => 2, :year => 80).to_a).to eq([80,2,nil])
56
- end
57
-
58
- it 'accepts an array' do
59
- expect(Date::DateParts.new.update([80,2]).to_a).to eq([80,2,nil])
60
- end
61
- end
62
-
63
- describe '#strftime' do
64
- it 'formats the date parts according to the format string' do
65
- expect(Date::DateParts.new(1998,2,4).strftime('FOO %0m%0d%y')).to eq('FOO 020498')
66
- end
67
- end
68
-
69
- describe 'to_citeproc' do
70
- it 'returns an empty list by default' do
71
- expect(Date::DateParts.new.to_citeproc).to eq([])
72
- end
73
-
74
- it 'returns a list with the year if only the year is set' do
75
- expect(Date::DateParts.new(2001).to_citeproc).to eq([2001])
76
- end
77
-
78
- it 'supports zero parts' do
79
- expect(Date::DateParts.new(0,0).to_citeproc).to eq([0,0])
80
- end
81
- end
82
-
83
- describe '#open?' do
84
- it 'returns false by default' do
85
- expect(Date::DateParts.new).not_to be_open
86
- end
87
-
88
- it 'returns false for [1999,8,24]' do
89
- expect(Date::DateParts.new(1999, 8, 24)).not_to be_open
90
- end
91
-
92
- it 'returns true for [0]' do
93
- expect(Date::DateParts.new(0)).to be_open
94
- end
95
- end
96
- end
97
-
98
-
99
- let(:ad2k) { Date.create('date-parts' => [[2000]])}
100
- let(:may) { Date.create('date-parts' => [[2000, 5]])}
101
- let(:first_of_may) { Date.create('date-parts' => [[2000, 5, 1]])}
102
-
103
- let(:bc100) { Date.create('date-parts' => [[-100]]) }
104
- let(:bc50) { Date.create('date-parts' => [[-50]]) }
105
- let(:ad50) { Date.create('date-parts' => [[50]]) }
106
- let(:ad100) { Date.create('date-parts' => [[100]]) }
107
-
108
- it { is_expected.not_to be nil }
109
-
110
- it { is_expected.not_to be_numeric }
111
-
112
- describe '.new' do
113
- it 'accepts a hash as input' do
114
- expect(Date.new(:literal => 'Summer').to_s).to eq('Summer')
115
- end
116
-
117
- it 'accepts a hash as input and converts date parts' do
118
- expect(Date.new(:'date-parts' => [[2003,2]]).parts[0]).to be_a(Date::DateParts)
119
- end
120
-
121
- it 'accepts a fixnum and treats it as the year' do
122
- expect(Date.new(1666).year).to eq(1666)
123
- end
124
-
125
- it 'accepts a date' do
126
- expect(Date.new(::Date.new(1980,4)).month).to eq(4)
127
- end
128
-
129
- it 'accepts a date and creates date parts' do
130
- expect(Date.new(::Date.new(1980,4)).parts[0].to_citeproc).to eq([1980,4,1])
131
- end
132
-
133
- it 'is empty by default' do
134
- expect(Date.new).to be_empty
135
- end
136
-
137
- it 'accepts date strings' do
138
- expect(Date.new('2009-03-19').day).to eq(19)
139
- end
140
-
141
- it 'accepts JSON strings' do
142
- expect(Date.new('{ "date-parts": [[2001,1,19]]}').day).to eq(19)
143
- end
144
-
145
- it 'accepts date parts in an array' do
146
- expect(Date.new([2009,3]).month).to eq(3)
147
- end
148
-
149
- it 'accepts ranges as an array' do
150
- expect(Date.new([[2009],[2012]])).to be_range
151
- end
152
-
153
- it 'accepts year ranges' do
154
- expect(Date.new(2009..2012)).to be_range
155
- end
156
-
157
- it 'accepts exclusive date ranges' do
158
- expect(Date.new(::Date.new(2009) ... ::Date.new(2011)).end_date.year).to eq(2010)
159
- end
160
-
161
- it 'accepts inclusive date ranges' do
162
- expect(Date.new(::Date.new(2009) .. ::Date.new(2011)).end_date.year).to eq(2011)
163
- end
164
-
165
- it 'accepts EDTF date strings' do
166
- expect(Date.new('2009?-03-19')).to be_uncertain
167
- end
168
-
169
- it 'accepts EDTF intervals' do
170
- expect(Date.new('2009-03-19/2010-11-21').parts.map(&:to_citeproc)).to eq([[2009,3,19],[2010,11,21]])
171
- end
172
- end
173
-
174
- describe '.parse' do
175
- it 'returns nil by default' do
176
- expect(Date.parse('')).to be nil
177
- expect(Date.parse(nil)).to be nil
178
- end
179
-
180
- it 'parses date strings' do
181
- expect(Date.parse('2004-10-26').year).to eq(2004)
182
- end
183
- end
184
-
185
- describe '.create' do
186
- it 'should accept parameters and return a new instance' do
187
- expect(Date.create('date-parts' => [[2001, 1]]).year).to eq(2001)
188
- end
189
- end
190
-
191
- describe '#dup' do
192
- let(:date) { Date.new([1991,8]) }
193
-
194
- it 'creates a copy that contains the same parts' do
195
- expect(date.dup.parts.map(&:to_citeproc)).to eq([[1991,8]])
196
- end
197
-
198
- it 'copies uncertainty' do
199
- expect(date.dup).not_to be_uncertain
200
- expect(date.uncertain!.dup).to be_uncertain
201
- end
202
-
203
- it 'makes a deep copy of attributes' do
204
- expect { date.dup.uncertain! }.not_to change { date.uncertain? }
205
- end
206
-
207
- it 'makes a deep copy of date parts' do
208
- expect { date.dup.parts[0].update(:year => 2012) }.not_to change { date.year }
209
- end
210
-
211
- it 'does not return self' do
212
- expect(date.dup).not_to equal(date)
213
- expect(date.dup).to eq(date)
214
- end
215
- end
216
-
217
- describe 'literal dates' do
218
- it 'is not literal by default' do
219
- expect(Date.new).not_to be_literal
220
- end
221
-
222
- it 'is literal if it contains only a literal field' do
223
- expect(Date.create(:literal => 'foo')).to be_literal
224
- end
225
-
226
- it 'is literal if it contains a literal field' do
227
- expect(Date.create('date-parts' => [[2000]], :literal => 'foo')).to be_literal
228
- end
229
- end
230
-
231
- describe 'seasons' do
232
- it 'is no season by default' do
233
- expect(Date.new).not_to be_season
234
- end
235
-
236
- it 'is a season if contains only a season field' do
237
- expect(Date.new(:season => 'Winter')).to be_season
238
- end
239
-
240
- it 'is a season if contains a season field' do
241
- expect(Date.new(:'date-parts' => [[2001]], :season => 'Winter')).to be_season
242
- end
243
- end
244
-
245
- describe 'uncertain dates' do
246
- it 'are uncertain' do
247
- expect(Date.new({ 'date-parts' => [[-225]], 'circa' => '1' })).to be_uncertain
248
- expect(Date.new { |d| d.parts = [[-225]]; d.uncertain! }).not_to be_certain
249
- end
250
-
251
- describe '#(un)certain!' do
252
- it 'returns self' do
253
- expect(ad2k.uncertain!).to equal(ad2k)
254
- expect(ad2k.certain!).to equal(ad2k)
255
- end
256
- end
257
- end
258
-
259
- describe 'sorting' do
260
- it 'dates with more date-parts will come after those with fewer parts' do
261
- expect(ad2k < may && may < first_of_may).to be true
262
- end
263
-
264
- it 'negative years are sorted inversely' do
265
- expect([ad50, bc100, bc50, ad100].sort.map(&:year)).to eq([-100, -50, 50, 100])
266
- end
267
-
268
- it 'can be compared to dates' do
269
- expect(ad50).to be < ::Date.new(50,2)
270
- expect(ad50).to be > ::Date.new(49)
271
- end
272
- end
273
-
274
- describe '#start_date' do
275
- it 'returns nil by default' do
276
- expect(Date.new.start_date).to be_nil
277
- end
278
-
279
- it 'returns a ruby date when date-parts are set' do
280
- expect(Date.new(1999).start_date.year).to eq(1999)
281
- end
282
- end
283
-
284
- describe '#end_date' do
285
- it 'returns nil by default' do
286
- expect(Date.new.end_date).to be_nil
287
- end
288
-
289
- it 'returns nil when there is a single date-parts set' do
290
- expect(Date.new(1312).end_date).to be_nil
291
- end
292
-
293
- it 'returns a ruby date when date-parts are a closed range' do
294
- expect(Date.new(1999..2000).end_date.year).to eq(2000)
295
- end
296
- end
297
-
298
- describe '#-@' do
299
- it 'inverts the year' do
300
- expect(-ad50).to eq(bc50)
301
- end
302
- end
303
-
304
- describe '#display' do
305
- it 'returns an empty string by default' do
306
- Date.new({}).to_s == ''
307
- end
308
- end
309
-
310
- describe 'b.c. and a.d.' do
311
-
312
- it 'the year 993 is a.d.' do
313
- expect(Date.new(993)).to be_ad
314
- end
315
-
316
- it 'the year 1000 is not a.d.' do
317
- expect(Date.new(1000)).not_to be_ad
318
- end
319
-
320
- it 'the year 993 is not b.c.' do
321
- expect(Date.new(993)).not_to be_bc
322
- end
323
-
324
- it 'the year 0 is a.d.' do
325
- expect(Date.new(0)).to be_ad
326
- end
327
-
328
- it 'the year 0 is not b.c.' do
329
- expect(Date.new(0)).not_to be_bc
330
- end
331
-
332
- it 'the year -33 is not a.d.' do
333
- expect(Date.new(-33)).not_to be_ad
334
- end
335
-
336
- it 'the year -33 is b.c.' do
337
- expect(Date.new(-33)).to be_bc
338
- end
339
-
340
- it 'today is not a.d.' do
341
- expect(Date.today).not_to be_ad
342
- end
343
-
344
- it 'today is not b.c.' do
345
- expect(Date.today).not_to be_bc
346
- end
347
-
348
- it 'the year 2000 is not a.d.' do
349
- expect(ad2k).not_to be_ad
350
- end
351
-
352
- end
353
-
354
- describe '#empty?' do
355
- it 'returns true by default' do
356
- expect(Date.new).to be_empty
357
- end
358
-
359
- it 'returns true when it contains no date parts' do
360
- expect(Date.new({})).to be_empty
361
- end
362
-
363
- it 'returns false for today' do
364
- expect(Date.today).not_to be_empty
365
- end
366
-
367
- it 'returns false for literal dates' do
368
- expect(Date.new(:literal => 'foo')).not_to be_empty
369
- end
370
-
371
- it 'returns false for seasons' do
372
- expect(Date.new(:season => 'Summer')).not_to be_empty
373
- end
374
- end
375
-
376
- describe '#to_json' do
377
- it 'supports simple parts' do
378
- expect(Date.new(%w{2000 1 15}).to_json).to eq('{"date-parts":[[2000,1,15]]}')
379
- end
380
-
381
- it 'supports string parts' do
382
- expect(Date.new(['2000', '1', '15']).to_json).to eq('{"date-parts":[[2000,1,15]]}')
383
- end
384
-
385
- it 'supports integer parts' do
386
- expect(Date.new([2000, 1, 15]).to_json).to eq('{"date-parts":[[2000,1,15]]}')
387
- end
388
-
389
- it 'supports mixed parts' do
390
- expect(Date.new(['2000', 1, '15']).to_json).to eq('{"date-parts":[[2000,1,15]]}')
391
- end
392
-
393
- it 'supports negative years' do
394
- expect(Date.new(-200).to_json).to eq('{"date-parts":[[-200]]}')
395
- end
396
-
397
- it 'treats seasons as a strings' do
398
- expect(Date.create({:season => '1', 'date-parts' => [[1950]]}).to_json).to match(/"season":"1"/)
399
- end
400
-
401
- it 'supports seasons' do
402
- expect(Date.create({:season => 'Trinity', 'date-parts' => [[1975]]}).to_json).to match(/"season":"Trinity"/)
403
- end
404
-
405
- it 'supports string literals' do
406
- expect(Date.new(:literal => '13th century').to_json).to eq('{"literal":"13th century"}')
407
- end
408
-
409
- it 'supports raw strings' do
410
- expect(Date.new(:raw => '23 May 1955').to_json).to eq('{"date-parts":[[1955,5,23]]}')
411
- end
412
-
413
- it 'supports closed ranges' do
414
- expect(Date.new([[2000,11],[2000,12]]).to_json).to eq('{"date-parts":[[2000,11],[2000,12]]}')
415
- end
416
-
417
- it 'supports open ranges' do
418
- expect(Date.new([[2000,11],[0,0]]).to_json).to eq('{"date-parts":[[2000,11],[0,0]]}')
419
- end
420
- end
421
-
422
- end
423
- end