citeproc 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -3
- data/lib/citeproc/version.rb +1 -1
- metadata +4 -1606
- data/.rspec +0 -3
- data/.simplecov +0 -4
- data/Guardfile +0 -14
- data/cucumber.yml +0 -1
- data/features/affix/InterveningEmpty.feature +0 -52
- data/features/affix/PrefixFullCitationTextOnly.feature +0 -41
- data/features/affix/PrefixWithDecorations.feature +0 -41
- data/features/affix/SuppressDelimiterCharsWhenFullStopInSuffix.feature +0 -410
- data/features/affix/TextNodeWithMacro.feature +0 -40
- data/features/affix/WithCommas.feature +0 -987
- data/features/affix/WordProcessorAffixNoSpace.feature +0 -41
- data/features/api/SuppressAuthor.feature +0 -48
- data/features/api/UpdateItemsDelete.feature +0 -44
- data/features/api/UpdateItemsDeleteDecrementsByCiteDisambiguation.feature +0 -46
- data/features/api/UpdateItemsReshuffle.feature +0 -44
- data/features/bibheader/EntryspacingDefaultValueOne.feature +0 -37
- data/features/bibheader/EntryspacingExplicitValueZero.feature +0 -38
- data/features/bibheader/SecondFieldAlign.feature +0 -38
- data/features/bibheader/SecondFieldAlignWithAuthor.feature +0 -40
- data/features/bibheader/SecondFieldAlignWithNumber.feature +0 -44
- data/features/bibsection/Exclude.feature +0 -47
- data/features/bibsection/Include.feature +0 -47
- data/features/bibsection/Quash.feature +0 -48
- data/features/bibsection/Select.feature +0 -47
- data/features/bugreports/Abnt.feature +0 -59
- data/features/bugreports/AccidentalAllCaps.feature +0 -813
- data/features/bugreports/AllCapsLeakage.feature +0 -818
- data/features/bugreports/ApostropheOnParticle.feature +0 -35
- data/features/bugreports/AsaSpacing.feature +0 -49
- data/features/bugreports/AsmJournals.feature +0 -153
- data/features/bugreports/AuthorYear.feature +0 -343
- data/features/bugreports/AutomaticallyDeleteItemsFails.feature +0 -154
- data/features/bugreports/BadCitationUpdate.feature +0 -39
- data/features/bugreports/BrokenInstitutionalName.feature +0 -390
- data/features/bugreports/ChicagoAuthorDateLooping.feature +0 -388
- data/features/bugreports/ChineseCharactersFamilyOnlyPluralLabel.feature +0 -36
- data/features/bugreports/CitationSortsWithEtAl.feature +0 -74
- data/features/bugreports/CollapseFailure.feature +0 -72
- data/features/bugreports/ContainerTitleShort.feature +0 -45
- data/features/bugreports/ContentPunctuationDuplicate1.feature +0 -40
- data/features/bugreports/ContextualPluralWithMainItemFields.feature +0 -34
- data/features/bugreports/CreepingAddNames.feature +0 -223
- data/features/bugreports/DelimiterBug.feature +0 -984
- data/features/bugreports/DelimitersOnLocator.feature +0 -322
- data/features/bugreports/DemoPageFullCiteCruftOnSubsequent.feature +0 -711
- data/features/bugreports/DisambiguationAddNames.feature +0 -233
- data/features/bugreports/DisambiguationAddNamesBibliography.feature +0 -235
- data/features/bugreports/DroppingGroupDelimiterSpace.feature +0 -37
- data/features/bugreports/DuplicateSpaces.feature +0 -151
- data/features/bugreports/DuplicateSpaces2.feature +0 -333
- data/features/bugreports/DuplicateSpaces3.feature +0 -200
- data/features/bugreports/DuplicateTerminalPunctuationInBibliography.feature +0 -227
- data/features/bugreports/EmptyIfMatchNoneFail.feature +0 -38
- data/features/bugreports/EtAlSubsequent.feature +0 -41
- data/features/bugreports/FourAndFour.feature +0 -715
- data/features/bugreports/FrenchApostrophe.feature +0 -34
- data/features/bugreports/GreekStyleProblems.feature +0 -1201
- data/features/bugreports/GreekStyleTwoEditors.feature +0 -1201
- data/features/bugreports/IeeePunctuation.feature +0 -151
- data/features/bugreports/LabelsOutOfPlace.feature +0 -715
- data/features/bugreports/MovePunctuationInsideQuotesForLocator.feature +0 -714
- data/features/bugreports/NoEventInNestedMacroWithOldProcessor.feature +0 -120
- data/features/bugreports/NoTitle.feature +0 -346
- data/features/bugreports/NumberAffixEscape.feature +0 -35
- data/features/bugreports/NumberInMacroWithVerticalAlign.feature +0 -36
- data/features/bugreports/NumericStyleFirstRefMultipleCiteFailure.feature +0 -148
- data/features/bugreports/OldMhraDisambiguationFailure.feature +0 -411
- data/features/bugreports/ProcessorHang1.feature +0 -209
- data/features/bugreports/SingleQuote.feature +0 -151
- data/features/bugreports/SingletonIfMatchNoneFail.feature +0 -38
- data/features/bugreports/SortSecondaryKey.feature +0 -233
- data/features/bugreports/SortSecondaryKeyBibliography.feature +0 -235
- data/features/bugreports/SortedIeeeItalicsFail.feature +0 -296
- data/features/bugreports/ThesisUniversityAppearsTwice.feature +0 -715
- data/features/bugreports/TitleCase.feature +0 -33
- data/features/bugreports/TwoCitesPlusOneBackref.feature +0 -963
- data/features/bugreports/TwoFullStops.feature +0 -394
- data/features/bugreports/UndefinedInName.feature +0 -199
- data/features/bugreports/UndefinedInName2.feature +0 -184
- data/features/bugreports/UndefinedInName3.feature +0 -351
- data/features/bugreports/UndefinedNotString.feature +0 -144
- data/features/bugreports/UndefinedStr.feature +0 -151
- data/features/bugreports/UnisaHarvardInitialization.feature +0 -62
- data/features/bugreports/YearSuffixInHarvard1.feature +0 -205
- data/features/bugreports/YearSuffixLingers.feature +0 -55
- data/features/bugreports/disambiguate.feature +0 -343
- data/features/bugreports/ikeyOne.feature +0 -277
- data/features/bugreports/parenthesis.feature +0 -333
- data/features/bugreports/parseName.feature +0 -46
- data/features/bugreports/undefinedCrash.feature +0 -150
- data/features/collapse/AuthorCollapse.feature +0 -41
- data/features/collapse/AuthorCollapseDifferentAuthorsOneWithEtAl.feature +0 -43
- data/features/collapse/AuthorCollapseNoDate.feature +0 -41
- data/features/collapse/AuthorCollapseNoDateSorted.feature +0 -45
- data/features/collapse/CitationNumberRangesInsert.feature +0 -39
- data/features/collapse/CitationNumberRangesMixed.feature +0 -39
- data/features/collapse/CitationNumberRangesMixed2.feature +0 -39
- data/features/collapse/CitationNumberRangesMixed3.feature +0 -39
- data/features/collapse/CitationNumberRangesOneOnly.feature +0 -41
- data/features/collapse/CitationNumberRangesWithAffixes.feature +0 -35
- data/features/collapse/CitationNumberRangesWithAffixesGrouped.feature +0 -51
- data/features/collapse/CitationNumberRangesWithAffixesGroupedLocator.feature +0 -51
- data/features/collapse/CitationNumberRangesWithAffixesNoCollapse.feature +0 -36
- data/features/collapse/NumericDuplicate.feature +0 -37
- data/features/collapse/NumericDuplicate2.feature +0 -34
- data/features/collapse/TrailingDelimiter.feature +0 -57
- data/features/collapse/YearSuffixCollapse.feature +0 -46
- data/features/collapse/YearSuffixCollapseNoRange.feature +0 -46
- data/features/collapse/YearSuffixCollapseNoYearSuffixDelimiter.feature +0 -45
- data/features/collapse/YearSuffixImplicitCollapseNoYearSuffixDelimiter.feature +0 -44
- data/features/condition/EmptyDate.feature +0 -42
- data/features/condition/EmptyIsNumericFalse.feature +0 -40
- data/features/condition/EmptyIsUncertainDateFalse.feature +0 -40
- data/features/condition/EmptyShortTitleFalse.feature +0 -40
- data/features/condition/FirstNullAny.feature +0 -38
- data/features/condition/IsNumeric.feature +0 -49
- data/features/condition/LocatorIsFalse.feature +0 -50
- data/features/condition/MatchAll.feature +0 -43
- data/features/condition/NameAndTextVars.feature +0 -56
- data/features/condition/NumberIsNumeric.feature +0 -40
- data/features/condition/NumeralIsNumeric.feature +0 -40
- data/features/condition/NumeralWithTextIsNumeric.feature +0 -40
- data/features/condition/RefTypeBranching.feature +0 -119
- data/features/condition/SingletonIfMatchNone.feature +0 -41
- data/features/condition/TextIsNotNumeric.feature +0 -40
- data/features/condition/VariableAll.feature +0 -41
- data/features/condition/VariableAny.feature +0 -41
- data/features/condition/VariableNone.feature +0 -41
- data/features/date/Accessed.feature +0 -33
- data/features/date/DateAD.feature +0 -37
- data/features/date/DateBC.feature +0 -37
- data/features/date/DateNoDateNoTest.feature +0 -37
- data/features/date/DateNoDateWithTest.feature +0 -45
- data/features/date/DayOrdinalDayOneOnly.feature +0 -44
- data/features/date/IgnoreNonexistentSort.feature +0 -37
- data/features/date/InPress.feature +0 -38
- data/features/date/January.feature +0 -33
- data/features/date/KeyVariable.feature +0 -46
- data/features/date/LiteralFailGracefullyIfNoValue.feature +0 -38
- data/features/date/LocalizedDateFormats-af-ZA.feature +0 -57
- data/features/date/LocalizedDateFormats-ar-AR.feature +0 -57
- data/features/date/LocalizedDateFormats-bg-BG.feature +0 -57
- data/features/date/LocalizedDateFormats-ca-AD.feature +0 -57
- data/features/date/LocalizedDateFormats-cs-CZ.feature +0 -57
- data/features/date/LocalizedDateFormats-da-DK.feature +0 -57
- data/features/date/LocalizedDateFormats-de-AT.feature +0 -57
- data/features/date/LocalizedDateFormats-de-CH.feature +0 -57
- data/features/date/LocalizedDateFormats-de-DE.feature +0 -57
- data/features/date/LocalizedDateFormats-el-GR.feature +0 -57
- data/features/date/LocalizedDateFormats-en-US.feature +0 -57
- data/features/date/LocalizedDateFormats-es-ES.feature +0 -57
- data/features/date/LocalizedDateFormats-et-EE.feature +0 -57
- data/features/date/LocalizedDateFormats-fr-FR.feature +0 -57
- data/features/date/LocalizedDateFormats-he-IL.feature +0 -57
- data/features/date/LocalizedDateFormats-hu-HU.feature +0 -57
- data/features/date/LocalizedDateFormats-is-IS.feature +0 -57
- data/features/date/LocalizedDateFormats-it-IT.feature +0 -57
- data/features/date/LocalizedDateFormats-ja-JP.feature +0 -57
- data/features/date/LocalizedDateFormats-kh-KH.feature +0 -46
- data/features/date/LocalizedDateFormats-ko-KR.feature +0 -57
- data/features/date/LocalizedDateFormats-mn-MN.feature +0 -57
- data/features/date/LocalizedDateFormats-nb-NO.feature +0 -57
- data/features/date/LocalizedDateFormats-nl-NL.feature +0 -57
- data/features/date/LocalizedDateFormats-pl-PL.feature +0 -57
- data/features/date/LocalizedDateFormats-pt-BR.feature +0 -57
- data/features/date/LocalizedDateFormats-pt-PT.feature +0 -57
- data/features/date/LocalizedDateFormats-ro-RO.feature +0 -57
- data/features/date/LocalizedDateFormats-ru-RU.feature +0 -57
- data/features/date/LocalizedDateFormats-sk-SK.feature +0 -57
- data/features/date/LocalizedDateFormats-sl-SL.feature +0 -57
- data/features/date/LocalizedDateFormats-sr-RS.feature +0 -57
- data/features/date/LocalizedDateFormats-sv-SE.feature +0 -57
- data/features/date/LocalizedDateFormats-th-TH.feature +0 -57
- data/features/date/LocalizedDateFormats-tr-TR.feature +0 -57
- data/features/date/LocalizedDateFormats-uk-UA.feature +0 -57
- data/features/date/LocalizedDateFormats-vi-VN.feature +0 -57
- data/features/date/LocalizedDateFormats-zh-CN.feature +0 -57
- data/features/date/LocalizedDateFormats-zh-TW.feature +0 -57
- data/features/date/LocalizedNumericDefault.feature +0 -33
- data/features/date/LocalizedNumericDefaultMissingDay.feature +0 -33
- data/features/date/LocalizedNumericDefaultWithAffixes.feature +0 -33
- data/features/date/LocalizedNumericYear.feature +0 -33
- data/features/date/LocalizedNumericYearMonth.feature +0 -33
- data/features/date/LocalizedNumericYearRange.feature +0 -33
- data/features/date/LocalizedNumericYearWithAffixes.feature +0 -33
- data/features/date/LocalizedTextDefault.feature +0 -33
- data/features/date/LocalizedTextDefaultMissingDay.feature +0 -33
- data/features/date/LocalizedTextDefaultWithAffixes.feature +0 -33
- data/features/date/LocalizedTextInStyleLocaleWithTextCase.feature +0 -42
- data/features/date/LocalizedTextMonthFormOverride.feature +0 -35
- data/features/date/LocalizedTextYear.feature +0 -33
- data/features/date/LocalizedTextYearMonth.feature +0 -33
- data/features/date/LocalizedTextYearWithAffixes.feature +0 -33
- data/features/date/LocalizedWithInStyleFormatting.feature +0 -35
- data/features/date/LoneJapaneseMonth.feature +0 -33
- data/features/date/LongMonth.feature +0 -37
- data/features/date/LopsidedDataYearSuffixCollapse.feature +0 -43
- data/features/date/MaskNonexistentWithCondition.feature +0 -42
- data/features/date/NegativeDateSort.feature +0 -40
- data/features/date/NegativeDateSortViaMacro.feature +0 -43
- data/features/date/NegativeDateSortViaMacroOnYearMonthOnly.feature +0 -53
- data/features/date/NoDate.feature +0 -45
- data/features/date/NonexistentSortReverseBibliography.feature +0 -47
- data/features/date/NonexistentSortReverseCitation.feature +0 -37
- data/features/date/OtherAlone.feature +0 -37
- data/features/date/OtherWithDate.feature +0 -37
- data/features/date/RawParseSimpleDate.feature +0 -37
- data/features/date/RawSeasonRange1.feature +0 -33
- data/features/date/RawSeasonRange2.feature +0 -33
- data/features/date/RawSeasonRange3.feature +0 -33
- data/features/date/SeasonSubstituteInGroup.feature +0 -38
- data/features/date/SortEmptyDatesBibliography.feature +0 -53
- data/features/date/SortEmptyDatesCitation.feature +0 -42
- data/features/date/String.feature +0 -36
- data/features/date/TextFormFulldateDayRange.feature +0 -37
- data/features/date/TextFormFulldateMonthRange.feature +0 -37
- data/features/date/TextFormFulldateYearRange.feature +0 -37
- data/features/date/TextFormMonthdateMonthRange.feature +0 -37
- data/features/date/TextFormMonthdateYearRange.feature +0 -37
- data/features/date/TextFormYeardateYearRange.feature +0 -37
- data/features/date/TextFormYeardateYearRangeOpen.feature +0 -37
- data/features/date/Uncertain.feature +0 -42
- data/features/date/VariousInvalidDates.feature +0 -37
- data/features/date/YearSuffixDelimiter.feature +0 -44
- data/features/date/YearSuffixImplicitWithNoDate.feature +0 -54
- data/features/date/YearSuffixImplicitWithNoDateOneOnly.feature +0 -54
- data/features/date/YearSuffixWithNoDate.feature +0 -54
- data/features/decorations/AndTermUnaffectedByNameDecorations.feature +0 -38
- data/features/decorations/Baseline.feature +0 -48
- data/features/decorations/NestedQuotes.feature +0 -33
- data/features/decorations/NestedQuotesInnerReverse.feature +0 -33
- data/features/decorations/NoNormalWithoutDecoration.feature +0 -41
- data/features/decorations/SimpleFlipFlop.feature +0 -33
- data/features/decorations/SimpleQuotes.feature +0 -33
- data/features/disambiguate/AddNamesFailure.feature +0 -43
- data/features/disambiguate/AddNamesFailureWithAddGivenname.feature +0 -44
- data/features/disambiguate/AddNamesSuccess.feature +0 -43
- data/features/disambiguate/AllNamesBaseNameCountOnFailureIfYearSuffixAvailable.feature +0 -55
- data/features/disambiguate/AllNamesGenerally.feature +0 -44
- data/features/disambiguate/AllNamesSimpleSequence.feature +0 -42
- data/features/disambiguate/AllNamesWithInitialsGenerally.feature +0 -44
- data/features/disambiguate/AndreaEg1a.feature +0 -47
- data/features/disambiguate/AndreaEg1b.feature +0 -48
- data/features/disambiguate/AndreaEg1c.feature +0 -47
- data/features/disambiguate/AndreaEg2.feature +0 -49
- data/features/disambiguate/AndreaEg3.feature +0 -50
- data/features/disambiguate/AndreaEg4.feature +0 -52
- data/features/disambiguate/AndreaEg5.feature +0 -53
- data/features/disambiguate/BasedOnEtAlSubsequent.feature +0 -44
- data/features/disambiguate/BasedOnSubsequentFormWithBackref.feature +0 -63
- data/features/disambiguate/BasedOnSubsequentFormWithLocator.feature +0 -67
- data/features/disambiguate/ByCiteBaseNameCountOnFailureIfYearSuffixAvailable.feature +0 -47
- data/features/disambiguate/ByCiteDisambiguateCondition.feature +0 -54
- data/features/disambiguate/ByCiteGivennameExpandCrossNestedNames.feature +0 -40
- data/features/disambiguate/ByCiteGivennameNoShortFormInitializeWith.feature +0 -39
- data/features/disambiguate/ByCiteGivennameShortFormInitializeWith.feature +0 -40
- data/features/disambiguate/ByCiteGivennameShortFormNoInitializeWith.feature +0 -39
- data/features/disambiguate/ByCiteIncremental1.feature +0 -355
- data/features/disambiguate/ByCiteIncremental2.feature +0 -352
- data/features/disambiguate/ByCiteIsDefault.feature +0 -250
- data/features/disambiguate/ByCiteMinimalGivennameExpandMinimalNames.feature +0 -48
- data/features/disambiguate/ByCiteRetainNamesOnFailureIfYearSuffixNotAvailable.feature +0 -46
- data/features/disambiguate/ByCiteTwoAuthorsSameCite.feature +0 -38
- data/features/disambiguate/ByCiteTwoAuthorsSameFamilyName.feature +0 -44
- data/features/disambiguate/CitationLabelDefault.feature +0 -34
- data/features/disambiguate/CitationLabelInData.feature +0 -34
- data/features/disambiguate/DifferentSpacingInInitials.feature +0 -40
- data/features/disambiguate/DisambiguateTrueAndYearSuffixOne.feature +0 -220
- data/features/disambiguate/DisambiguateTrueAndYearSuffixTwo.feature +0 -220
- data/features/disambiguate/DisambiguateWithThree.feature +0 -48
- data/features/disambiguate/DisambiguateWithThree2.feature +0 -91
- data/features/disambiguate/DisambiguationHang.feature +0 -48
- data/features/disambiguate/ExtraTextCitation.feature +0 -44
- data/features/disambiguate/FailWithYearSuffix.feature +0 -390
- data/features/disambiguate/FamilyNameOnly.feature +0 -43
- data/features/disambiguate/HonorFullnameInBibliography.feature +0 -49
- data/features/disambiguate/ImplicitYearSuffixOnceOnly.feature +0 -56
- data/features/disambiguate/IncrementalExtraText.feature +0 -55
- data/features/disambiguate/InitializeWithButNoDisambiguation.feature +0 -292
- data/features/disambiguate/LastOnlyFailWithByCite.feature +0 -49
- data/features/disambiguate/NoTextElementUsesYearSuffixVariable.feature +0 -39
- data/features/disambiguate/PrimaryNameGenerally.feature +0 -42
- data/features/disambiguate/PrimaryNameWithInitialsLimitedToPrimary.feature +0 -46
- data/features/disambiguate/SetsOfNames.feature +0 -205
- data/features/disambiguate/SkipAccessedYearSuffix.feature +0 -258
- data/features/disambiguate/ThreeNoAuthorNoTitleEntries.feature +0 -63
- data/features/disambiguate/ToInitialOnly.feature +0 -39
- data/features/disambiguate/Trigraph.feature +0 -36
- data/features/disambiguate/YearCollapseWithInstitution.feature +0 -51
- data/features/disambiguate/YearSuffixAndSort.feature +0 -50
- data/features/disambiguate/YearSuffixAtTwoLevels.feature +0 -45
- data/features/disambiguate/YearSuffixFiftyTwoEntries.feature +0 -48
- data/features/disambiguate/YearSuffixFiftyTwoEntriesByCite.feature +0 -48
- data/features/disambiguate/YearSuffixMacroSameYearExplicit.feature +0 -45
- data/features/disambiguate/YearSuffixMacroSameYearImplicit.feature +0 -42
- data/features/disambiguate/YearSuffixMidInsert.feature +0 -391
- data/features/disambiguate/YearSuffixMixedDates.feature +0 -52
- data/features/disambiguate/YearSuffixTwoPairsBibliography.feature +0 -63
- data/features/disambiguate/YearSuffixTwoPairsFirstNameBibliography.feature +0 -65
- data/features/disambiguate/YearSuffixTwoPairsFullNamesBibliography.feature +0 -63
- data/features/disambiguate/YearSuffixWithEtAlSubequent.feature +0 -51
- data/features/disambiguate/YearSuffixWithMixedCreatorTypes.feature +0 -53
- data/features/discretionary/AuthorDateAuthorOnlyThenSuppressAuthor.feature +0 -46
- data/features/discretionary/AuthorOnly.feature +0 -42
- data/features/discretionary/CitationNumberAuthorOnlyThenSuppressAuthor.feature +0 -41
- data/features/discretionary/CitationNumberSuppressAuthor.feature +0 -40
- data/features/discretionary/SuppressAuthorSolo.feature +0 -45
- data/features/discretionary/SuppressEditorSolo.feature +0 -45
- data/features/discretionary/SuppressEditorSubstitute.feature +0 -45
- data/features/discretionary/SuppressMultipleAuthors.feature +0 -45
- data/features/display/AuthorAsHeading.feature +0 -80
- data/features/display/DisplayBlock.feature +0 -54
- data/features/display/SecondFieldAlignClone.feature +0 -65
- data/features/display/SecondFieldAlignMigratePunctuation.feature +0 -154
- data/features/etal/ShortFormOfName.feature +0 -38
- data/features/etal/UseZeroFirst.feature +0 -47
- data/features/flipflop/Apostrophes.feature +0 -1064
- data/features/flipflop/BoldfaceNodeLevelMarkup.feature +0 -33
- data/features/flipflop/ItalicsFlipped.feature +0 -35
- data/features/flipflop/ItalicsSimple.feature +0 -39
- data/features/flipflop/ItalicsWithOk.feature +0 -48
- data/features/flipflop/ItalicsWithOkAndTextcase.feature +0 -48
- data/features/flipflop/LeadingSingleQuote.feature +0 -33
- data/features/flipflop/QuotesInFieldNotOnNode.feature +0 -33
- data/features/flipflop/QuotesNodeLevelMarkup.feature +0 -40
- data/features/flipflop/SingleQuotesOnItalics.feature +0 -33
- data/features/flipflop/SmallCaps.feature +0 -36
- data/features/flipflop/StartingApostrophe.feature +0 -33
- data/features/form/TitleShort.feature +0 -33
- data/features/form/TitleShortNoLong.feature +0 -33
- data/features/form/TitleTestNoLongFalse.feature +0 -40
- data/features/fullstyles/ABdNT.feature +0 -675
- data/features/fullstyles/APA.feature +0 -361
- data/features/fullstyles/ChicagoArticleTitleQuestion.feature +0 -390
- data/features/fullstyles/ChicagoAuthorDateSimple.feature +0 -394
- data/features/fullstyles/ChicagoNoteWithBibliographyWithPublisher.feature +0 -716
- data/features/group/ComplexNesting.feature +0 -397
- data/features/group/ShortOutputOnly.feature +0 -35
- data/features/group/SuppressTermWhenNoOutputFromPartialDate.feature +0 -39
- data/features/group/SuppressValueWithEmptySubgroup.feature +0 -46
- data/features/group/SuppressWithEmptyNestedDateNode.feature +0 -202
- data/features/integration/CitationSort.feature +0 -50
- data/features/integration/CitationSortTwice.feature +0 -51
- data/features/integration/CrossCitationIbidOnInsert.feature +0 -82
- data/features/integration/DeleteName.feature +0 -36
- data/features/integration/DisambiguateAddGivenname1.feature +0 -45
- data/features/integration/DisambiguateAddGivenname2.feature +0 -45
- data/features/integration/DuplicateItem.feature +0 -45
- data/features/integration/DuplicateItem2.feature +0 -45
- data/features/integration/FirstReferenceNoteNumberPositionChange.feature +0 -62
- data/features/integration/IbidOnInsert.feature +0 -50
- data/features/integration/IbidWithDifferentLocators.feature +0 -59
- data/features/integration/SimpleFirstReferenceNoteNumber.feature +0 -61
- data/features/integration/SimpleIbid.feature +0 -57
- data/features/integration/SubsequentWhenInterveningFootnote.feature +0 -51
- data/features/integration/YearSuffixOnOffOn.feature +0 -46
- data/features/label/CollapsedPageNumberPluralDetection.feature +0 -42
- data/features/label/EditorTranslator1.feature +0 -556
- data/features/label/EmptyLabelVanish.feature +0 -43
- data/features/label/ImplicitForm.feature +0 -36
- data/features/label/NoFirstCharCapWithInTextClass.feature +0 -38
- data/features/label/NonexistentNameVariableLabel.feature +0 -36
- data/features/label/PageWithEmbeddedLabel.feature +0 -35
- data/features/label/PluralNumberOfVolumes.feature +0 -36
- data/features/label/PluralPagesWithAlphaPrefix.feature +0 -37
- data/features/locale/EffectOfStyleDefinition.feature +0 -38
- data/features/locale/EmptyDate.feature +0 -41
- data/features/locale/EmptyPlusOverrideDate.feature +0 -48
- data/features/locale/EmptyPlusOverrideStyleOpt.feature +0 -39
- data/features/locale/EmptyPlusOverrideTerm.feature +0 -44
- data/features/locale/EmptyStyleOpt.feature +0 -36
- data/features/locale/EmptyTerm.feature +0 -39
- data/features/locale/ForceEmptyAndOthersTerm.feature +0 -41
- data/features/locale/ForceEmptyEtAlTerm.feature +0 -40
- data/features/locale/NonExistentLocaleDef.feature +0 -48
- data/features/locale/OverloadWithEmptyString.feature +0 -46
- data/features/locale/PageRangeDelimiterTermDefined.feature +0 -38
- data/features/locale/PageRangeDelimiterTermFrenchUndef.feature +0 -34
- data/features/locale/PageRangeDelimiterTermUndefined.feature +0 -33
- data/features/locale/SpecificDate.feature +0 -41
- data/features/locale/SpecificStyleOpt.feature +0 -36
- data/features/locale/SpecificTerm.feature +0 -39
- data/features/locale/TermInSort.feature +0 -77
- data/features/locale/TitleCaseEmptyLangEmptyLocale.feature +0 -33
- data/features/locale/TitleCaseEmptyLangNonEnglishLocale.feature +0 -34
- data/features/locale/TitleCaseEnglishLangUpperEmptyLocale.feature +0 -33
- data/features/locale/TitleCaseGarbageLangEmptyLocale.feature +0 -33
- data/features/locale/TitleCaseGarbageLangEnglishLocale.feature +0 -34
- data/features/locale/TitleCaseGarbageLangNonEnglishLocale.feature +0 -34
- data/features/locale/TitleCaseNonEnglishLangUpperEmptyLocale.feature +0 -33
- data/features/locale/UnknownTerm.feature +0 -34
- data/features/locator/SimpleLocators.feature +0 -46
- data/features/locator/TermSelection.feature +0 -40
- data/features/locator/TrickyEntryForPlurals.feature +0 -40
- data/features/locator/WorkaroundTestForSubVerbo.feature +0 -47
- data/features/magic/AllowRepeatDateRenderings.feature +0 -47
- data/features/magic/CapitalizeFirstOccurringNameParticle.feature +0 -35
- data/features/magic/CapitalizeFirstOccurringTerm.feature +0 -33
- data/features/magic/CitationLabelInBibliography.feature +0 -234
- data/features/magic/CitationLabelInCitation.feature +0 -224
- data/features/magic/EntrySpacingDouble.feature +0 -52
- data/features/magic/HangingIndent.feature +0 -52
- data/features/magic/ImplicitYearSuffixDelimiter.feature +0 -38
- data/features/magic/ImplicitYearSuffixExplicitDelimiter.feature +0 -52
- data/features/magic/LineSpacingDouble.feature +0 -52
- data/features/magic/LineSpacingTripleStretch.feature +0 -52
- data/features/magic/NameParticle.feature +0 -35
- data/features/magic/NameSuffixNoComma.feature +0 -35
- data/features/magic/NameSuffixWithComma.feature +0 -35
- data/features/magic/NumberRangeEnglish.feature +0 -33
- data/features/magic/NumberRangeFrench.feature +0 -34
- data/features/magic/PunctuationInQuoteDefaultEnglishDelimiter.feature +0 -41
- data/features/magic/PunctuationInQuoteDefaultEnglishSuffix.feature +0 -39
- data/features/magic/PunctuationInQuoteDelimiterTrue.feature +0 -44
- data/features/magic/PunctuationInQuoteFalse.feature +0 -44
- data/features/magic/PunctuationInQuoteFalseSuppressExtra.feature +0 -37
- data/features/magic/PunctuationInQuoteNested.feature +0 -47
- data/features/magic/PunctuationInQuoteSuffixTrue.feature +0 -42
- data/features/magic/PunctuationInQuoteTrueSuppressExtra.feature +0 -37
- data/features/magic/QuotesAndBraces1.feature +0 -36
- data/features/magic/QuotesAndBraces2.feature +0 -36
- data/features/magic/SecondFieldAlign.feature +0 -57
- data/features/magic/StripPeriodsExcludeAffixes.feature +0 -44
- data/features/magic/StripPeriodsFalse.feature +0 -34
- data/features/magic/StripPeriodsTrue.feature +0 -34
- data/features/magic/StripPeriodsTrueShortForm.feature +0 -46
- data/features/magic/SubsequentAuthorSubstitute.feature +0 -55
- data/features/magic/SubsequentAuthorSubstituteNotFooled.feature +0 -497
- data/features/magic/SubsequentAuthorSubstituteOfTitleField.feature +0 -55
- data/features/magic/SuperscriptChars.feature +0 -241
- data/features/magic/SuppressDuplicateVariableRendering.feature +0 -43
- data/features/magic/SuppressExtraTerminalPunctuationAfterTerm.feature +0 -410
- data/features/magic/SuppressLayoutDelimiterIfPrefixComma.feature +0 -34
- data/features/magic/TermCapitalizationWithPrefix.feature +0 -49
- data/features/magic/TextRangeEnglish.feature +0 -33
- data/features/magic/TextRangeFrench.feature +0 -34
- data/features/name/AfterInvertedName.feature +0 -42
- data/features/name/AllCapsInitialsUntouched.feature +0 -46
- data/features/name/AndTextDelimiterPrecedesLastAlways.feature +0 -35
- data/features/name/ArticularNameAsSortOrder.feature +0 -35
- data/features/name/ArticularPlain.feature +0 -35
- data/features/name/ArticularShortForm.feature +0 -35
- data/features/name/ArticularShortFormCommaSuffix.feature +0 -35
- data/features/name/ArticularWithComma.feature +0 -35
- data/features/name/ArticularWithCommaNameAsSortOrder.feature +0 -35
- data/features/name/Asian.feature +0 -35
- data/features/name/AsianGlyphs.feature +0 -35
- data/features/name/AuthorCount.feature +0 -39
- data/features/name/AuthorCountWithMultipleVariables.feature +0 -37
- data/features/name/AuthorCountWithSameVarContentAndCombinedTermFail.feature +0 -45
- data/features/name/AuthorCountWithSameVarContentAndCombinedTermSucceed.feature +0 -45
- data/features/name/AuthorEditorCount.feature +0 -37
- data/features/name/CelticClanName.feature +0 -35
- data/features/name/CeltsAndToffsCrowdedInitials.feature +0 -35
- data/features/name/CeltsAndToffsNoHyphens.feature +0 -36
- data/features/name/CeltsAndToffsSpacedInitials.feature +0 -35
- data/features/name/CeltsAndToffsWithHyphens.feature +0 -36
- data/features/name/CollapseRoleLabels.feature +0 -46
- data/features/name/Delimiter.feature +0 -37
- data/features/name/EditorTranslatorBoth.feature +0 -189
- data/features/name/EditorTranslatorSameEmptyTerm.feature +0 -41
- data/features/name/EditorTranslatorSameWithTerm.feature +0 -36
- data/features/name/EditorTranslatorWithTranslatorOnly.feature +0 -35
- data/features/name/EditorTranslatorWithTranslatorOnlyBib.feature +0 -189
- data/features/name/EtAlUseLast.feature +0 -47
- data/features/name/FormattingOfParticles.feature +0 -37
- data/features/name/GreekSimple.feature +0 -35
- data/features/name/HebrewAnd.feature +0 -40
- data/features/name/HierarchicalDelimiter.feature +0 -35
- data/features/name/HyphenatedFirstName.feature +0 -35
- data/features/name/HyphenatedNonDroppingParticle1.feature +0 -51
- data/features/name/HyphenatedNonDroppingParticle2.feature +0 -51
- data/features/name/InheritAttributesEtAlStyle.feature +0 -37
- data/features/name/Institution.feature +0 -35
- data/features/name/InstitutionDecoration.feature +0 -45
- data/features/name/LabelAfterPlural.feature +0 -36
- data/features/name/LabelAfterPluralDecorations.feature +0 -38
- data/features/name/LongAbbreviation.feature +0 -35
- data/features/name/LowercaseSurnameSuffix.feature +0 -35
- data/features/name/MixedFormatsInitialSortOrderAllWithDecorationsEtAl.feature +0 -39
- data/features/name/MixedFormatsInitialSortOrderFirstWithDecorationsEtAl.feature +0 -39
- data/features/name/MixedFormatsInitialsWithDecorationsEtAl.feature +0 -39
- data/features/name/MixedFormatsPrimaryDecorations.feature +0 -37
- data/features/name/MixedFormatsWithDecorationsEtAl.feature +0 -39
- data/features/name/MixedFormatsWithDecorationsPlusAlternateEtAlDecorations.feature +0 -40
- data/features/name/MixedFormatsWithDecorationsPlusEtAlDecorations.feature +0 -40
- data/features/name/MultipleLiteral.feature +0 -35
- data/features/name/NoNameNode.feature +0 -33
- data/features/name/NonDroppingParticleDefault.feature +0 -35
- data/features/name/OnlyFamilyname.feature +0 -35
- data/features/name/OnlyGivenname.feature +0 -35
- data/features/name/OverridingHierarchicalDelimiter.feature +0 -36
- data/features/name/ParseNames.feature +0 -39
- data/features/name/ParsedCommaDelimitedDroppingParticleNormalOrderingWithAffixes.feature +0 -38
- data/features/name/ParsedCommaDelimitedDroppingParticleNormalOrderingWithoutAffixes.feature +0 -36
- data/features/name/ParsedCommaDelimitedDroppingParticleSortOrderingWithoutAffixes.feature +0 -38
- data/features/name/ParsedDroppingParticleWithAffixes.feature +0 -39
- data/features/name/ParsedDroppingParticleWithApostrophe.feature +0 -38
- data/features/name/ParsedNonDroppingParticleWithAffixes.feature +0 -39
- data/features/name/ParsedNonDroppingParticleWithApostrophe.feature +0 -39
- data/features/name/ParsedUpperCaseNonDroppingParticle.feature +0 -39
- data/features/name/ParticleCaps1.feature +0 -40
- data/features/name/ParticleCaps2.feature +0 -46
- data/features/name/ParticleCaps3.feature +0 -47
- data/features/name/ParticleFormatting.feature +0 -38
- data/features/name/ParticlesDemoteNonDroppingNever.feature +0 -99
- data/features/name/PeriodAfterInitials.feature +0 -38
- data/features/name/QuashOrdinaryVariableRenderedViaSubstitute.feature +0 -39
- data/features/name/RomanianTwo.feature +0 -36
- data/features/name/SemicolonWithAnd.feature +0 -38
- data/features/name/SplitInitials.feature +0 -35
- data/features/name/SubsequentAuthorSubstituteMultipleNames.feature +0 -50
- data/features/name/SubstituteInheritLabel.feature +0 -44
- data/features/name/SubstituteMacroInheritDecorations.feature +0 -42
- data/features/name/SubstituteName.feature +0 -38
- data/features/name/SubstituteOnDateGroupSpanFail.feature +0 -45
- data/features/name/SubstituteOnGroupSpanGroupSpanFail.feature +0 -46
- data/features/name/SubstituteOnMacroGroupSpanFail.feature +0 -46
- data/features/name/SubstituteOnNamesSingletonGroupSpanFail.feature +0 -42
- data/features/name/SubstituteOnNamesSpanGroupSpanFail.feature +0 -44
- data/features/name/SubstituteOnNamesSpanNamesSpanFail.feature +0 -43
- data/features/name/SubstituteOnNumberGroupSpanFail.feature +0 -42
- data/features/name/TwoRolesSameRenderingSeparateRoleLabels.feature +0 -43
- data/features/name/WesternArticularLowercase.feature +0 -35
- data/features/name/WesternPrimaryFontStyle.feature +0 -37
- data/features/name/WesternPrimaryFontStyleTwoAuthors.feature +0 -37
- data/features/name/WesternSimple.feature +0 -35
- data/features/name/WesternTwoAuthors.feature +0 -35
- data/features/name/namepartAffixes.feature +0 -38
- data/features/name/namepartAffixesNameAsSortOrder.feature +0 -39
- data/features/name/namepartAffixesNameAsSortOrderDemoteNonDroppingParticle.feature +0 -39
- data/features/nameattr/AndOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/AndOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/AndOnCitationInBibliography.feature +0 -45
- data/features/nameattr/AndOnCitationInCitation.feature +0 -36
- data/features/nameattr/AndOnNamesInBibliography.feature +0 -42
- data/features/nameattr/AndOnNamesInCitation.feature +0 -35
- data/features/nameattr/AndOnStyleInBibliography.feature +0 -43
- data/features/nameattr/AndOnStyleInCitation.feature +0 -43
- data/features/nameattr/DelimiterPrecedesEtAlOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/DelimiterPrecedesEtAlOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/DelimiterPrecedesEtAlOnCitationInBibliography.feature +0 -45
- data/features/nameattr/DelimiterPrecedesEtAlOnCitationInCitation.feature +0 -36
- data/features/nameattr/DelimiterPrecedesEtAlOnNamesInBibliography.feature +0 -42
- data/features/nameattr/DelimiterPrecedesEtAlOnNamesInCitation.feature +0 -35
- data/features/nameattr/DelimiterPrecedesEtAlOnStyleInBibliography.feature +0 -43
- data/features/nameattr/DelimiterPrecedesEtAlOnStyleInCitation.feature +0 -36
- data/features/nameattr/DelimiterPrecedesLastOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/DelimiterPrecedesLastOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/DelimiterPrecedesLastOnCitationInBibliography.feature +0 -45
- data/features/nameattr/DelimiterPrecedesLastOnCitationInCitation.feature +0 -36
- data/features/nameattr/DelimiterPrecedesLastOnNamesInBibliography.feature +0 -42
- data/features/nameattr/DelimiterPrecedesLastOnNamesInCitation.feature +0 -35
- data/features/nameattr/DelimiterPrecedesLastOnStyleInBibliography.feature +0 -43
- data/features/nameattr/DelimiterPrecedesLastOnStyleInCitation.feature +0 -36
- data/features/nameattr/EtAlMinOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/EtAlMinOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/EtAlMinOnCitationInBibliography.feature +0 -45
- data/features/nameattr/EtAlMinOnCitationInCitation.feature +0 -36
- data/features/nameattr/EtAlMinOnNamesInBibliography.feature +0 -42
- data/features/nameattr/EtAlMinOnNamesInCitation.feature +0 -35
- data/features/nameattr/EtAlMinOnStyleInBibliography.feature +0 -42
- data/features/nameattr/EtAlMinOnStyleInCitation.feature +0 -35
- data/features/nameattr/EtAlSubsequentMinOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/EtAlSubsequentMinOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/EtAlSubsequentMinOnCitationInBibliography.feature +0 -45
- data/features/nameattr/EtAlSubsequentMinOnCitationInCitation.feature +0 -37
- data/features/nameattr/EtAlSubsequentMinOnNamesInBibliography.feature +0 -42
- data/features/nameattr/EtAlSubsequentMinOnStyleInBibliography.feature +0 -42
- data/features/nameattr/EtAlSubsequentMinOnStyleInCitation.feature +0 -38
- data/features/nameattr/EtAlSubsequentUseFirstOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/EtAlSubsequentUseFirstOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/EtAlSubsequentUseFirstOnCitationInBibliography.feature +0 -45
- data/features/nameattr/EtAlSubsequentUseFirstOnCitationInCitation.feature +0 -44
- data/features/nameattr/EtAlSubsequentUseFirstOnStyleInBibliography.feature +0 -43
- data/features/nameattr/EtAlSubsequentUseFirstOnStyleInCitation.feature +0 -37
- data/features/nameattr/EtAlUseFirstOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/EtAlUseFirstOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/EtAlUseFirstOnCitationInBibliography.feature +0 -45
- data/features/nameattr/EtAlUseFirstOnCitationInCitation.feature +0 -43
- data/features/nameattr/EtAlUseFirstOnNamesInBibliography.feature +0 -42
- data/features/nameattr/EtAlUseFirstOnNamesInCitation.feature +0 -35
- data/features/nameattr/EtAlUseFirstOnStyleInBibliography.feature +0 -43
- data/features/nameattr/EtAlUseFirstOnStyleInCitation.feature +0 -35
- data/features/nameattr/InitializeWithOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/InitializeWithOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/InitializeWithOnCitationInBibliography.feature +0 -45
- data/features/nameattr/InitializeWithOnCitationInCitation.feature +0 -36
- data/features/nameattr/InitializeWithOnNamesInBibliography.feature +0 -42
- data/features/nameattr/InitializeWithOnNamesInCitation.feature +0 -35
- data/features/nameattr/InitializeWithOnStyleInBibliography.feature +0 -43
- data/features/nameattr/InitializeWithOnStyleInCitation.feature +0 -36
- data/features/nameattr/NameAsSortOrderOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/NameAsSortOrderOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/NameAsSortOrderOnCitationInBibliography.feature +0 -45
- data/features/nameattr/NameAsSortOrderOnCitationInCitation.feature +0 -36
- data/features/nameattr/NameAsSortOrderOnNamesInBibliography.feature +0 -42
- data/features/nameattr/NameAsSortOrderOnNamesInCitation.feature +0 -35
- data/features/nameattr/NameAsSortOrderOnStyleInBibliography.feature +0 -43
- data/features/nameattr/NameAsSortOrderOnStyleInCitation.feature +0 -35
- data/features/nameattr/NameDelimiterOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/NameDelimiterOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/NameDelimiterOnCitationInBibliography.feature +0 -45
- data/features/nameattr/NameDelimiterOnCitationInCitation.feature +0 -43
- data/features/nameattr/NameDelimiterOnNamesInBibliography.feature +0 -42
- data/features/nameattr/NameDelimiterOnNamesInCitation.feature +0 -42
- data/features/nameattr/NameDelimiterOnStyleInBibliography.feature +0 -43
- data/features/nameattr/NameDelimiterOnStyleInCitation.feature +0 -43
- data/features/nameattr/NameFormOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/NameFormOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/NameFormOnCitationInBibliography.feature +0 -45
- data/features/nameattr/NameFormOnCitationInCitation.feature +0 -43
- data/features/nameattr/NameFormOnNamesInBibliography.feature +0 -42
- data/features/nameattr/NameFormOnNamesInCitation.feature +0 -35
- data/features/nameattr/NameFormOnStyleInBibliography.feature +0 -43
- data/features/nameattr/NameFormOnStyleInCitation.feature +0 -36
- data/features/nameattr/NamesDelimiterOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/NamesDelimiterOnBibliographyInCitation.feature +0 -43
- data/features/nameattr/NamesDelimiterOnCitationInBibliography.feature +0 -45
- data/features/nameattr/NamesDelimiterOnCitationInCitation.feature +0 -36
- data/features/nameattr/NamesDelimiterOnNamesInBibliography.feature +0 -42
- data/features/nameattr/NamesDelimiterOnNamesInCitation.feature +0 -35
- data/features/nameattr/NamesDelimiterOnStyleInBibliography.feature +0 -42
- data/features/nameattr/NamesDelimiterOnStyleInCitation.feature +0 -36
- data/features/nameattr/SortSeparatorOnBibliographyInBibliography.feature +0 -43
- data/features/nameattr/SortSeparatorOnBibliographyInCitation.feature +0 -44
- data/features/nameattr/SortSeparatorOnCitationInBibliography.feature +0 -45
- data/features/nameattr/SortSeparatorOnCitationInCitation.feature +0 -36
- data/features/nameattr/SortSeparatorOnNamesInBibliography.feature +0 -42
- data/features/nameattr/SortSeparatorOnNamesInCitation.feature +0 -35
- data/features/nameattr/SortSeparatorOnStyleInBibliography.feature +0 -43
- data/features/nameattr/SortSeparatorOnStyleInCitation.feature +0 -36
- data/features/nameorder/Long.feature +0 -35
- data/features/nameorder/LongNameAsSortDemoteDisplayAndSort.feature +0 -36
- data/features/nameorder/LongNameAsSortDemoteNever.feature +0 -36
- data/features/nameorder/Short.feature +0 -35
- data/features/nameorder/ShortDemoteDisplayAndSort.feature +0 -36
- data/features/nameorder/ShortNameAsSortDemoteNever.feature +0 -36
- data/features/namespaces/NonNada3.feature +0 -33
- data/features/number/EditionSort.feature +0 -47
- data/features/number/FailingDelimiters.feature +0 -44
- data/features/number/IsNumericWithAlpha.feature +0 -40
- data/features/number/MixedPageRange.feature +0 -34
- data/features/number/MixedText.feature +0 -33
- data/features/number/NewOrdinals.feature +0 -64
- data/features/number/NewOrdinalsEdition.feature +0 -1044
- data/features/number/NewOrdinalsWithGenderChange.feature +0 -45
- data/features/number/PageFirst.feature +0 -36
- data/features/number/PageRange.feature +0 -33
- data/features/number/PlainHyphenOrEnDashAlwaysPlural.feature +0 -42
- data/features/number/SeparateOrdinalNamespaces.feature +0 -55
- data/features/number/SimpleNumberArabic.feature +0 -33
- data/features/number/SimpleNumberOrdinalLong.feature +0 -35
- data/features/number/SimpleNumberOrdinalShort.feature +0 -33
- data/features/number/SimpleNumberRoman.feature +0 -33
- data/features/number/StrangeError.feature +0 -34
- data/features/page/Chicago.feature +0 -55
- data/features/page/Expand.feature +0 -42
- data/features/page/Minimal.feature +0 -55
- data/features/page/NoOption.feature +0 -34
- data/features/page/NumberPageFirst.feature +0 -33
- data/features/page/PluralDetectWithEndash.feature +0 -33
- data/features/parallel/Bibliography.feature +0 -87
- data/features/parallel/HackedChicago.feature +0 -715
- data/features/parallel/JournalArticleReverse.feature +0 -46
- data/features/parallel/JournalArticleSimple.feature +0 -46
- data/features/parallel/TrailingIbid.feature +0 -69
- data/features/plural/LabelForced.feature +0 -37
- data/features/plural/NameLabelAlways.feature +0 -36
- data/features/plural/NameLabelContextualPlural.feature +0 -36
- data/features/plural/NameLabelContextualSingular.feature +0 -36
- data/features/plural/NameLabelDefaultPlural.feature +0 -36
- data/features/plural/NameLabelDefaultSingular.feature +0 -36
- data/features/plural/NameLabelNever.feature +0 -36
- data/features/position/FalseInBibliography.feature +0 -47
- data/features/position/FirstTrueOnlyOnce.feature +0 -55
- data/features/position/IbidInText.feature +0 -51
- data/features/position/IbidSeparateCiteSameNote.feature +0 -80
- data/features/position/IbidWithLocator.feature +0 -52
- data/features/position/IbidWithMultipleSoloCitesInBackref.feature +0 -52
- data/features/position/IbidWithPrefixFullStop.feature +0 -44
- data/features/position/IbidWithSuffix.feature +0 -54
- data/features/position/IfIbidIsTrueThenSubsequentIsTrue.feature +0 -61
- data/features/position/IfIbidWithLocatorIsTrueThenIbidIsTrue.feature +0 -58
- data/features/position/NearNoteFalse.feature +0 -41
- data/features/position/NearNoteSameNote.feature +0 -43
- data/features/position/NearNoteTrue.feature +0 -41
- data/features/position/NearNoteUnsupported.feature +0 -40
- data/features/position/NearNoteWithPlugin.feature +0 -454
- data/features/position/ResetNoteNumbers.feature +0 -54
- data/features/position/TrueInCitation.feature +0 -45
- data/features/punctuation/DateStripPeriods.feature +0 -36
- data/features/punctuation/DefaultYearSuffixDelimiter.feature +0 -183
- data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute1.feature +0 -53
- data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute2.feature +0 -52
- data/features/punctuation/DelimiterWithStripPeriodsAndSubstitute3.feature +0 -60
- data/features/punctuation/DoNotSuppressColonAfterPeriod.feature +0 -34
- data/features/punctuation/FrenchOrthography.feature +0 -33
- data/features/punctuation/FullMontyField.feature +0 -230
- data/features/punctuation/FullMontyPlain.feature +0 -230
- data/features/punctuation/FullMontyQuotesIn.feature +0 -233
- data/features/punctuation/FullMontyQuotesOut.feature +0 -233
- data/features/punctuation/NoSuppressOfPeriodBeforeSemicolon.feature +0 -36
- data/features/punctuation/SemicolonDelimiter.feature +0 -62
- data/features/punctuation/SuppressPrefixPeriodForDelimiterSemicolon.feature +0 -715
- data/features/quotes/Punctuation.feature +0 -43
- data/features/quotes/PunctuationNasty.feature +0 -977
- data/features/quotes/PunctuationWithInnerQuote.feature +0 -43
- data/features/simplespace/case1.feature +0 -202
- data/features/sort/AguStyle.feature +0 -94
- data/features/sort/AguStyleReverseGroups.feature +0 -94
- data/features/sort/AuthorDateWithYearSuffix.feature +0 -202
- data/features/sort/BibliographyCitationNumberDescending.feature +0 -51
- data/features/sort/BibliographyCitationNumberDescendingViaMacro.feature +0 -54
- data/features/sort/BibliographyNosortOption.feature +0 -44
- data/features/sort/CaseInsensitiveBibliography.feature +0 -55
- data/features/sort/CaseInsensitiveCitation.feature +0 -36
- data/features/sort/ChangeInNameSort.feature +0 -54
- data/features/sort/ChicagoYearSuffix1.feature +0 -391
- data/features/sort/ChicagoYearSuffix2.feature +0 -391
- data/features/sort/Citation.feature +0 -42
- data/features/sort/CitationEdit.feature +0 -49
- data/features/sort/CitationSecondaryKey.feature +0 -46
- data/features/sort/CitationUnsorted.feature +0 -42
- data/features/sort/CiteGroupDelimiter.feature +0 -45
- data/features/sort/ConditionalMacroDates.feature +0 -64
- data/features/sort/DateMacroSortWithSecondFieldAlign.feature +0 -56
- data/features/sort/DateVariable.feature +0 -36
- data/features/sort/DateVariableMixedElementsAscendingA.feature +0 -36
- data/features/sort/DateVariableMixedElementsAscendingB.feature +0 -36
- data/features/sort/DateVariableMixedElementsDescendingA.feature +0 -36
- data/features/sort/DateVariableMixedElementsDescendingB.feature +0 -36
- data/features/sort/DateVariableRange.feature +0 -36
- data/features/sort/DateVariableRangeMixed.feature +0 -36
- data/features/sort/DropNameLabelInSort.feature +0 -116
- data/features/sort/EtAlUseLast.feature +0 -54
- data/features/sort/FamilyOnly.feature +0 -45
- data/features/sort/GroupedByAuthorstring.feature +0 -50
- data/features/sort/LatinUnicode.feature +0 -42
- data/features/sort/LeadingApostropheOnNameParticle.feature +0 -55
- data/features/sort/LocalizedDateLimitedParts.feature +0 -40
- data/features/sort/NameImplicitSortOrderAndForm.feature +0 -51
- data/features/sort/NameParticleInNameSortFalse.feature +0 -48
- data/features/sort/NameParticleInNameSortTrue.feature +0 -48
- data/features/sort/NameVariable.feature +0 -47
- data/features/sort/NamesUseLast.feature +0 -64
- data/features/sort/NumberOfAuthorsAsKey.feature +0 -68
- data/features/sort/SeparateAuthorsAndOthers.feature +0 -127
- data/features/sort/StatusFieldAscending.feature +0 -46
- data/features/sort/StatusFieldDescending.feature +0 -46
- data/features/sort/StripMarkup.feature +0 -39
- data/features/sort/SubstituteTitle.feature +0 -398
- data/features/sort/VariousNameMacros1.feature +0 -287
- data/features/sort/VariousNameMacros2.feature +0 -287
- data/features/sort/VariousNameMacros3.feature +0 -288
- data/features/sort/WithAndInOneEntry.feature +0 -228
- data/features/sortseparator/SortSeparatorEmpty.feature +0 -44
- data/features/step_definitions/processor.rb +0 -59
- data/features/substitute/RepeatedNamesOk.feature +0 -52
- data/features/substitute/SuppressOrdinaryVariable.feature +0 -79
- data/features/support/env.rb +0 -49
- data/features/testers/FirstAutoGeneratedZoteroPluginTest.feature +0 -715
- data/features/testers/SecondAutoGeneratedZoteroPluginTest.feature +0 -717
- data/features/textcase/CapitalizeAll.feature +0 -33
- data/features/textcase/CapitalizeFirst.feature +0 -33
- data/features/textcase/CapitalizeFirstWithDecor.feature +0 -33
- data/features/textcase/CapitalsUntouched.feature +0 -37
- data/features/textcase/Lowercase.feature +0 -33
- data/features/textcase/SentenceCapitalization.feature +0 -33
- data/features/textcase/SkipNameParticlesInTitleCase.feature +0 -33
- data/features/textcase/TitleCapitalization.feature +0 -33
- data/features/textcase/TitleCaseNonEnglish.feature +0 -33
- data/features/textcase/TitleCaseNonEnglish2.feature +0 -34
- data/features/textcase/TitleCaseWithHyphens.feature +0 -33
- data/features/textcase/TitleCaseWithInitials.feature +0 -33
- data/features/textcase/Uppercase.feature +0 -59
- data/features/textcase/UppercaseNumber.feature +0 -33
- data/features/unicode/NonBreakingSpace.feature +0 -34
- data/features/variables/ShortForm.feature +0 -54
- data/features/variables/TitleShortOnAbbrevWithTitle.feature +0 -37
- data/features/variables/TitleShortOnAbbrevWithTitleCondition.feature +0 -57
- data/features/variables/TitleShortOnAbbrevWithTitleGroup.feature +0 -44
- data/features/variables/TitleShortOnShortTitleNoTitle.feature +0 -33
- data/features/variables/TitleShortOnShortTitleNoTitleCondition.feature +0 -53
- data/features/variables/TitleShortOnShortTitleNoTitleGroup.feature +0 -40
- data/features/virtual/PageFirst.feature +0 -37
- data/spec/citeproc/abbreviate_spec.rb +0 -37
- data/spec/citeproc/assets_spec.rb +0 -72
- data/spec/citeproc/attributes_spec.rb +0 -97
- data/spec/citeproc/bibliography_spec.rb +0 -72
- data/spec/citeproc/citation_data_spec.rb +0 -94
- data/spec/citeproc/date_spec.rb +0 -423
- data/spec/citeproc/engine_spec.rb +0 -19
- data/spec/citeproc/extensions_spec.rb +0 -89
- data/spec/citeproc/item_spec.rb +0 -91
- data/spec/citeproc/names_spec.rb +0 -646
- data/spec/citeproc/processor_spec.rb +0 -127
- data/spec/citeproc/selector_spec.rb +0 -90
- data/spec/citeproc/utilities_spec.rb +0 -12
- data/spec/citeproc/variable_spec.rb +0 -196
- data/spec/fixtures/locales/locales-en-US.xml +0 -304
- data/spec/spec_helper.rb +0 -42
- 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
|
data/spec/citeproc/date_spec.rb
DELETED
@@ -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
|