citeproc-ruby 0.0.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.document +4 -0
- data/.gitignore +10 -0
- data/.rspec +3 -0
- data/.simplecov +4 -0
- data/.travis.yml +17 -0
- data/.yardopts +2 -0
- data/AGPL +662 -0
- data/BSDL +29 -0
- data/Gemfile +42 -0
- data/Guardfile +14 -0
- data/README.md +32 -76
- data/Rakefile +60 -0
- data/citeproc-ruby.gemspec +46 -0
- data/cucumber.yml +1 -0
- data/features/bibliography.feature +25 -0
- data/features/name_options.feature +37 -0
- data/features/names.feature +192 -0
- data/features/renderer.feature +74 -0
- data/features/sort.feature +50 -0
- data/features/step_definitions/renderer.rb +80 -0
- data/features/support/env.rb +33 -0
- data/features/support/hooks.rb +10 -0
- data/lib/citeproc/ruby.rb +32 -0
- data/lib/citeproc/ruby/engine.rb +122 -0
- data/lib/citeproc/ruby/format.rb +303 -0
- data/lib/citeproc/ruby/formats/default.rb +25 -0
- data/lib/citeproc/ruby/formats/html.rb +221 -0
- data/lib/citeproc/ruby/renderer.rb +140 -0
- data/lib/citeproc/ruby/renderer/choose.rb +106 -0
- data/lib/citeproc/ruby/renderer/date.rb +90 -0
- data/lib/citeproc/ruby/renderer/format.rb +129 -0
- data/lib/citeproc/ruby/renderer/group.rb +34 -0
- data/lib/citeproc/ruby/renderer/history.rb +40 -0
- data/lib/citeproc/ruby/renderer/label.rb +66 -0
- data/lib/citeproc/ruby/renderer/layout.rb +20 -0
- data/lib/citeproc/ruby/renderer/locale.rb +26 -0
- data/lib/citeproc/ruby/renderer/macro.rb +20 -0
- data/lib/citeproc/ruby/renderer/names.rb +401 -0
- data/lib/citeproc/ruby/renderer/number.rb +41 -0
- data/lib/citeproc/ruby/renderer/observer.rb +44 -0
- data/lib/citeproc/ruby/renderer/state.rb +96 -0
- data/lib/citeproc/ruby/renderer/text.rb +62 -0
- data/lib/citeproc/ruby/sort.rb +82 -0
- data/lib/citeproc/ruby/version.rb +5 -0
- data/spec/citeproc/ruby/engine_spec.rb +94 -0
- data/spec/citeproc/ruby/formats/default_spec.rb +159 -0
- data/spec/citeproc/ruby/formats/html_spec.rb +162 -0
- data/spec/citeproc/ruby/renderer/choose_spec.rb +293 -0
- data/spec/citeproc/ruby/renderer/date_spec.rb +173 -0
- data/spec/citeproc/ruby/renderer/group_spec.rb +88 -0
- data/spec/citeproc/ruby/renderer/history_spec.rb +38 -0
- data/spec/citeproc/ruby/renderer/label_spec.rb +225 -0
- data/spec/citeproc/ruby/renderer/layout_spec.rb +41 -0
- data/spec/citeproc/ruby/renderer/macro_spec.rb +31 -0
- data/spec/citeproc/ruby/renderer/names_spec.rb +396 -0
- data/spec/citeproc/ruby/renderer/number_spec.rb +120 -0
- data/spec/citeproc/ruby/renderer/text_spec.rb +120 -0
- data/spec/citeproc/ruby/renderer_spec.rb +65 -0
- data/spec/fixtures/items.rb +80 -0
- data/{resource/locale → spec/fixtures/locales}/locales-en-US.xml +2 -11
- data/{resource/locale → spec/fixtures/locales}/locales-fr-FR.xml +77 -66
- data/{resource/style → spec/fixtures/styles}/apa.csl +5 -5
- data/spec/spec_helper.rb +67 -14
- metadata +121 -211
- data/lib/citeproc.rb +0 -100
- data/lib/citeproc/bibliography.rb +0 -57
- data/lib/citeproc/data.rb +0 -149
- data/lib/citeproc/date.rb +0 -133
- data/lib/citeproc/formatter.rb +0 -38
- data/lib/citeproc/item.rb +0 -53
- data/lib/citeproc/name.rb +0 -284
- data/lib/citeproc/processor.rb +0 -166
- data/lib/citeproc/selector.rb +0 -61
- data/lib/citeproc/variable.rb +0 -82
- data/lib/citeproc/version.rb +0 -3
- data/lib/csl/locale.rb +0 -223
- data/lib/csl/node.rb +0 -72
- data/lib/csl/nodes.rb +0 -1418
- data/lib/csl/renderer.rb +0 -88
- data/lib/csl/sort.rb +0 -61
- data/lib/csl/style.rb +0 -110
- data/lib/csl/term.rb +0 -124
- data/lib/extensions/core.rb +0 -43
- data/lib/plugins/filters/bibtex.rb +0 -12
- data/lib/plugins/formats/default.rb +0 -134
- data/lib/plugins/formats/html.rb +0 -67
- data/lib/support/attributes.rb +0 -99
- data/lib/support/compatibility.rb +0 -83
- data/lib/support/tree.rb +0 -80
- data/resource/locale/locales-af-ZA.xml +0 -305
- data/resource/locale/locales-ar-AR.xml +0 -306
- data/resource/locale/locales-bg-BG.xml +0 -305
- data/resource/locale/locales-ca-AD.xml +0 -305
- data/resource/locale/locales-cs-CZ.xml +0 -305
- data/resource/locale/locales-da-DK.xml +0 -305
- data/resource/locale/locales-de-AT.xml +0 -304
- data/resource/locale/locales-de-CH.xml +0 -304
- data/resource/locale/locales-de-DE.xml +0 -332
- data/resource/locale/locales-el-GR.xml +0 -305
- data/resource/locale/locales-en-GB.xml +0 -304
- data/resource/locale/locales-es-ES.xml +0 -305
- data/resource/locale/locales-et-EE.xml +0 -304
- data/resource/locale/locales-eu.xml +0 -305
- data/resource/locale/locales-fa-IR.xml +0 -304
- data/resource/locale/locales-fi-FI.xml +0 -304
- data/resource/locale/locales-fr-CA.xml +0 -306
- data/resource/locale/locales-he-IL.xml +0 -304
- data/resource/locale/locales-hu-HU.xml +0 -305
- data/resource/locale/locales-is-IS.xml +0 -304
- data/resource/locale/locales-it-IT.xml +0 -305
- data/resource/locale/locales-ja-JP.xml +0 -305
- data/resource/locale/locales-kh-KH.xml +0 -303
- data/resource/locale/locales-km-KH.xml +0 -304
- data/resource/locale/locales-ko-KR.xml +0 -305
- data/resource/locale/locales-mn-MN.xml +0 -306
- data/resource/locale/locales-nb-NO.xml +0 -304
- data/resource/locale/locales-nl-NL.xml +0 -304
- data/resource/locale/locales-nn-NO.xml +0 -304
- data/resource/locale/locales-pl-PL.xml +0 -305
- data/resource/locale/locales-pt-BR.xml +0 -304
- data/resource/locale/locales-pt-PT.xml +0 -305
- data/resource/locale/locales-ro-RO.xml +0 -305
- data/resource/locale/locales-ru-RU.xml +0 -306
- data/resource/locale/locales-sk-SK.xml +0 -304
- data/resource/locale/locales-sl-SI.xml +0 -305
- data/resource/locale/locales-sr-RS.xml +0 -305
- data/resource/locale/locales-sv-SE.xml +0 -305
- data/resource/locale/locales-th-TH.xml +0 -304
- data/resource/locale/locales-tr-TR.xml +0 -305
- data/resource/locale/locales-uk-UA.xml +0 -306
- data/resource/locale/locales-vi-VN.xml +0 -305
- data/resource/locale/locales-zh-CN.xml +0 -304
- data/resource/locale/locales-zh-TW.xml +0 -305
- data/resource/schema/csl-categories.rnc +0 -39
- data/resource/schema/csl-data.rnc +0 -98
- data/resource/schema/csl-terms.rnc +0 -106
- data/resource/schema/csl-types.rnc +0 -39
- data/resource/schema/csl-variables.rnc +0 -182
- data/resource/schema/csl.rnc +0 -941
- data/resource/style/bibtex.csl +0 -177
- data/resource/style/chicago-annotated-bibliography.csl +0 -513
- data/resource/style/chicago-author-date-basque.csl +0 -707
- data/resource/style/chicago-author-date-de.csl +0 -394
- data/resource/style/chicago-author-date-listing.csl +0 -434
- data/resource/style/chicago-author-date.csl +0 -425
- data/resource/style/chicago-dated-note-biblio-no-ibid.csl +0 -472
- data/resource/style/chicago-fullnote-bibliography-bb.csl +0 -928
- data/resource/style/chicago-fullnote-bibliography-delimiter-fixes.csl +0 -972
- data/resource/style/chicago-fullnote-bibliography-no-ibid-delimiter-fixes.csl +0 -963
- data/resource/style/chicago-fullnote-bibliography-no-ibid.csl +0 -785
- data/resource/style/chicago-fullnote-bibliography.csl +0 -803
- data/resource/style/chicago-library-list.csl +0 -511
- data/resource/style/chicago-note-biblio-no-ibid.csl +0 -514
- data/resource/style/chicago-note-bibliography.csl +0 -530
- data/resource/style/chicago-note.csl +0 -388
- data/resource/style/chicago-quick-copy.csl +0 -685
- data/resource/style/ieee.csl +0 -299
- data/resource/style/mla-notes.csl +0 -796
- data/resource/style/mla-underline.csl +0 -175
- data/resource/style/mla-url.csl +0 -214
- data/resource/style/mla.csl +0 -394
- data/resource/style/vancouver-brackets.csl +0 -256
- data/resource/style/vancouver-superscript-bracket-only-year.csl +0 -165
- data/resource/style/vancouver-superscript.csl +0 -256
- data/resource/style/vancouver.csl +0 -256
- data/spec/citeproc/bibliography_spec.rb +0 -45
- data/spec/citeproc/citeproc_spec.rb +0 -80
- data/spec/citeproc/date_spec.rb +0 -89
- data/spec/citeproc/formatter_spec.rb +0 -101
- data/spec/citeproc/item_spec.rb +0 -71
- data/spec/citeproc/name_spec.rb +0 -30
- data/spec/citeproc/processor_spec.rb +0 -61
- data/spec/citeproc/selector_spec.rb +0 -82
- data/spec/citeproc/variable_spec.rb +0 -69
- data/spec/csl/locale_spec.rb +0 -208
- data/spec/csl/node_spec.rb +0 -25
- data/spec/csl/nodes_spec.rb +0 -145
- data/spec/csl/style_spec.rb +0 -62
- data/spec/csl/term_spec.rb +0 -56
- data/spec/fixtures/dates.yaml +0 -80
- data/spec/fixtures/names.yaml +0 -115
- data/spec/fixtures/nodes.yaml +0 -245
- data/spec/support/attributes_spec.rb +0 -39
- data/spec/support/tree_spec.rb +0 -163
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" page-range-format="minimal">
|
|
3
|
-
<info>
|
|
4
|
-
<title>Vancouver</title>
|
|
5
|
-
<id>http://www.zotero.org/styles/vancouver</id>
|
|
6
|
-
<link href="http://www.zotero.org/styles/vancouver" rel="self"/>
|
|
7
|
-
<author>
|
|
8
|
-
<name>Michael Berkowitz</name>
|
|
9
|
-
<email>mberkowi@gmu.edu</email>
|
|
10
|
-
</author>
|
|
11
|
-
<contributor>
|
|
12
|
-
<name>Sean Takats</name>
|
|
13
|
-
<email>stakats@gmu.edu</email>
|
|
14
|
-
</contributor>
|
|
15
|
-
<contributor>
|
|
16
|
-
<name>Sebastian Karcher</name>
|
|
17
|
-
</contributor>
|
|
18
|
-
<category field="medicine"/>
|
|
19
|
-
<category citation-format="numeric"/>
|
|
20
|
-
<updated>2008-09-16T00:00:00+00:00</updated>
|
|
21
|
-
<summary>
|
|
22
|
-
Vancouver style as outlined by International Committee of Medical Journal Editors Uniform Requirements for Manuscripts Submitted to Biomedical Journals: Sample References
|
|
23
|
-
</summary>
|
|
24
|
-
<link href="http://www.nlm.nih.gov/bsd/uniform_requirements.html" rel="documentation"/>
|
|
25
|
-
<rights>This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/</rights>
|
|
26
|
-
</info>
|
|
27
|
-
<locale xml:lang="en">
|
|
28
|
-
<terms>
|
|
29
|
-
<term name="retrieved">available</term>
|
|
30
|
-
<term name="section" form="short">sect.</term>
|
|
31
|
-
</terms>
|
|
32
|
-
</locale>
|
|
33
|
-
<locale xml:lang="de">
|
|
34
|
-
<terms>
|
|
35
|
-
<term name="retrieved">verfügbar</term>
|
|
36
|
-
<term name="from">unter</term>
|
|
37
|
-
</terms>
|
|
38
|
-
</locale>
|
|
39
|
-
<macro name="author">
|
|
40
|
-
<names variable="author">
|
|
41
|
-
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
|
|
42
|
-
<label form="long" prefix=", "/>
|
|
43
|
-
<substitute>
|
|
44
|
-
<names variable="editor"/>
|
|
45
|
-
</substitute>
|
|
46
|
-
</names>
|
|
47
|
-
</macro>
|
|
48
|
-
<macro name="editor">
|
|
49
|
-
<group delimiter=": ">
|
|
50
|
-
<choose>
|
|
51
|
-
<if type="chapter paper-conference">
|
|
52
|
-
<text term="in" text-case="capitalize-first"/>
|
|
53
|
-
</if>
|
|
54
|
-
</choose>
|
|
55
|
-
<names variable="editor" suffix=".">
|
|
56
|
-
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
|
|
57
|
-
<label form="long" prefix=", "/>
|
|
58
|
-
</names>
|
|
59
|
-
</group>
|
|
60
|
-
</macro>
|
|
61
|
-
<macro name="publisher">
|
|
62
|
-
<group delimiter=": " suffix=";">
|
|
63
|
-
<choose>
|
|
64
|
-
<if type="thesis">
|
|
65
|
-
<text variable="publisher-place" prefix="[" suffix="]"/>
|
|
66
|
-
</if>
|
|
67
|
-
<else>
|
|
68
|
-
<text variable="publisher-place"/>
|
|
69
|
-
</else>
|
|
70
|
-
</choose>
|
|
71
|
-
<text variable="publisher"/>
|
|
72
|
-
</group>
|
|
73
|
-
</macro>
|
|
74
|
-
<macro name="access">
|
|
75
|
-
<choose>
|
|
76
|
-
<if variable="URL">
|
|
77
|
-
<group delimiter=": ">
|
|
78
|
-
<group delimiter=" ">
|
|
79
|
-
<text term="retrieved" text-case="capitalize-first"/>
|
|
80
|
-
<text term="from"/>
|
|
81
|
-
</group>
|
|
82
|
-
<text variable="URL"/>
|
|
83
|
-
</group>
|
|
84
|
-
</if>
|
|
85
|
-
</choose>
|
|
86
|
-
</macro>
|
|
87
|
-
<macro name="accessed-date">
|
|
88
|
-
<choose>
|
|
89
|
-
<if variable="URL">
|
|
90
|
-
<group prefix="[" suffix="]" delimiter=" ">
|
|
91
|
-
<text term="cited" text-case="lowercase"/>
|
|
92
|
-
<date variable="accessed" suffix="">
|
|
93
|
-
<date-part name="year"/>
|
|
94
|
-
<date-part name="month" prefix=" " form="short" strip-periods="true"/>
|
|
95
|
-
<date-part name="day" prefix=" "/>
|
|
96
|
-
</date>
|
|
97
|
-
</group>
|
|
98
|
-
</if>
|
|
99
|
-
</choose>
|
|
100
|
-
</macro>
|
|
101
|
-
<macro name="container-title">
|
|
102
|
-
<choose>
|
|
103
|
-
<if type="article-journal article-magazine chapter paper-conference article-newspaper" match="any">
|
|
104
|
-
<group suffix="." delimiter=" ">
|
|
105
|
-
<text variable="container-title" form="short"/>
|
|
106
|
-
<choose>
|
|
107
|
-
<if variable="URL">
|
|
108
|
-
<text term="internet" prefix="[" suffix="]" text-case="capitalize-first"/>
|
|
109
|
-
</if>
|
|
110
|
-
</choose>
|
|
111
|
-
</group>
|
|
112
|
-
<text macro="edition" prefix=" "/>
|
|
113
|
-
</if>
|
|
114
|
-
<!--add event-name and event-place once they become available-->
|
|
115
|
-
<else-if type="bill legislation">
|
|
116
|
-
<group delimiter=", ">
|
|
117
|
-
<group delimiter=". ">
|
|
118
|
-
<text variable="container-title" form="short"/>
|
|
119
|
-
<group delimiter=" ">
|
|
120
|
-
<text term="section" form="short" text-case="capitalize-first"/>
|
|
121
|
-
<text variable="section"/>
|
|
122
|
-
</group>
|
|
123
|
-
</group>
|
|
124
|
-
<text variable="number"/>
|
|
125
|
-
</group>
|
|
126
|
-
</else-if>
|
|
127
|
-
<else>
|
|
128
|
-
<text variable="container-title" suffix="." form="short"/>
|
|
129
|
-
</else>
|
|
130
|
-
</choose>
|
|
131
|
-
</macro>
|
|
132
|
-
<macro name="title">
|
|
133
|
-
<text variable="title"/>
|
|
134
|
-
<choose>
|
|
135
|
-
<if type="article-journal article-magazine chapter paper-conference article-newspaper" match="none">
|
|
136
|
-
<choose>
|
|
137
|
-
<if variable="URL">
|
|
138
|
-
<text term="internet" prefix=" [" suffix="]" text-case="capitalize-first"/>
|
|
139
|
-
</if>
|
|
140
|
-
</choose>
|
|
141
|
-
<text macro="edition" prefix=". "/>
|
|
142
|
-
</if>
|
|
143
|
-
</choose>
|
|
144
|
-
<choose>
|
|
145
|
-
<if type="thesis">
|
|
146
|
-
<text variable="genre" prefix=" [" suffix="]"/>
|
|
147
|
-
</if>
|
|
148
|
-
</choose>
|
|
149
|
-
</macro>
|
|
150
|
-
<macro name="edition">
|
|
151
|
-
<choose>
|
|
152
|
-
<if is-numeric="edition">
|
|
153
|
-
<group delimiter=" ">
|
|
154
|
-
<number variable="edition" form="ordinal"/>
|
|
155
|
-
<text term="edition" form="short"/>
|
|
156
|
-
</group>
|
|
157
|
-
</if>
|
|
158
|
-
<else>
|
|
159
|
-
<text variable="edition" suffix="."/>
|
|
160
|
-
</else>
|
|
161
|
-
</choose>
|
|
162
|
-
</macro>
|
|
163
|
-
<macro name="date">
|
|
164
|
-
<choose>
|
|
165
|
-
<if type="article-journal article-magazine article-newspaper" match="any">
|
|
166
|
-
<group suffix=";" delimiter=" ">
|
|
167
|
-
<date variable="issued" delimiter=" ">
|
|
168
|
-
<date-part name="year"/>
|
|
169
|
-
<date-part name="month" form="short" strip-periods="true"/>
|
|
170
|
-
<date-part name="day"/>
|
|
171
|
-
</date>
|
|
172
|
-
<text macro="accessed-date"/>
|
|
173
|
-
</group>
|
|
174
|
-
</if>
|
|
175
|
-
<else-if type="bill legislation">
|
|
176
|
-
<group delimiter=", ">
|
|
177
|
-
<date variable="issued" delimiter=" ">
|
|
178
|
-
<date-part name="month" form="short" strip-periods="true"/>
|
|
179
|
-
<date-part name="day"/>
|
|
180
|
-
</date>
|
|
181
|
-
<date variable="issued">
|
|
182
|
-
<date-part name="year"/>
|
|
183
|
-
</date>
|
|
184
|
-
</group>
|
|
185
|
-
</else-if>
|
|
186
|
-
<else-if type="report">
|
|
187
|
-
<date variable="issued" delimiter=" ">
|
|
188
|
-
<date-part name="year"/>
|
|
189
|
-
<date-part name="month" form="short" strip-periods="true"/>
|
|
190
|
-
</date>
|
|
191
|
-
</else-if>
|
|
192
|
-
<else>
|
|
193
|
-
<group suffix=".">
|
|
194
|
-
<date variable="issued">
|
|
195
|
-
<date-part name="year"/>
|
|
196
|
-
</date>
|
|
197
|
-
<text macro="accessed-date" prefix=" "/>
|
|
198
|
-
</group>
|
|
199
|
-
</else>
|
|
200
|
-
</choose>
|
|
201
|
-
</macro>
|
|
202
|
-
<macro name="pages">
|
|
203
|
-
<choose>
|
|
204
|
-
<if type="article-journal article-magazine article-newspaper" match="any">
|
|
205
|
-
<text variable="page" prefix=":"/>
|
|
206
|
-
</if>
|
|
207
|
-
<else>
|
|
208
|
-
<text variable="page" prefix=" p. "/>
|
|
209
|
-
</else>
|
|
210
|
-
</choose>
|
|
211
|
-
</macro>
|
|
212
|
-
<macro name="journal-location">
|
|
213
|
-
<choose>
|
|
214
|
-
<if type="article-journal article-magazine" match="any">
|
|
215
|
-
<text variable="volume"/>
|
|
216
|
-
<text variable="issue" prefix="(" suffix=")"/>
|
|
217
|
-
</if>
|
|
218
|
-
</choose>
|
|
219
|
-
</macro>
|
|
220
|
-
<macro name="report-details">
|
|
221
|
-
<choose>
|
|
222
|
-
<if type="report">
|
|
223
|
-
<text variable="number" prefix="Report No.: "/>
|
|
224
|
-
</if>
|
|
225
|
-
</choose>
|
|
226
|
-
</macro>
|
|
227
|
-
<citation collapse="citation-number">
|
|
228
|
-
<sort>
|
|
229
|
-
<key variable="citation-number"/>
|
|
230
|
-
</sort>
|
|
231
|
-
<layout prefix="(" suffix=")" delimiter=",">
|
|
232
|
-
<text variable="citation-number"/>
|
|
233
|
-
</layout>
|
|
234
|
-
</citation>
|
|
235
|
-
<bibliography et-al-min="7" et-al-use-first="6" second-field-align="flush">
|
|
236
|
-
<layout>
|
|
237
|
-
<text variable="citation-number" suffix=". "/>
|
|
238
|
-
<group delimiter=". " suffix=". ">
|
|
239
|
-
<text macro="author"/>
|
|
240
|
-
<text macro="title"/>
|
|
241
|
-
</group>
|
|
242
|
-
<group delimiter=" " suffix=". ">
|
|
243
|
-
<text macro="editor"/>
|
|
244
|
-
<text macro="container-title"/>
|
|
245
|
-
<text macro="publisher"/>
|
|
246
|
-
<group>
|
|
247
|
-
<text macro="date"/>
|
|
248
|
-
<text macro="journal-location"/>
|
|
249
|
-
<text macro="pages"/>
|
|
250
|
-
</group>
|
|
251
|
-
</group>
|
|
252
|
-
<text macro="report-details" suffix=". "/>
|
|
253
|
-
<text macro="access"/>
|
|
254
|
-
</layout>
|
|
255
|
-
</bibliography>
|
|
256
|
-
</style>
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module CiteProc
|
|
2
|
-
describe Bibliography do
|
|
3
|
-
|
|
4
|
-
let(:json) {'[{"test":"test","bibliography-errors":[]},["1","2"]]'}
|
|
5
|
-
|
|
6
|
-
describe '#new' do
|
|
7
|
-
it { should_not be_nil }
|
|
8
|
-
|
|
9
|
-
it 'accepts a JSON string' do
|
|
10
|
-
Bibliography.new(json).should_not be_empty
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it 'accepts a data array' do
|
|
14
|
-
Bibliography.new([1,2,3]).data.should == [1,2,3]
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'accepts an options hash' do
|
|
18
|
-
Bibliography.new('test'=>'test').options['test'].should == 'test'
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it 'accepts an options hash with errors' do
|
|
22
|
-
Bibliography.new('bibliography-errors'=>[1,2,3]).errors.should == [1,2,3]
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
describe '#to_json' do
|
|
27
|
-
it 'returns valid JSON when empty' do
|
|
28
|
-
JSON.parse(Bibliography.new.to_json).should_not be_nil
|
|
29
|
-
end
|
|
30
|
-
it 'returns valid JSON with data' do
|
|
31
|
-
JSON.parse(Bibliography.new([1,2,3]).to_json).should_not be_nil
|
|
32
|
-
end
|
|
33
|
-
it 'returns valid JSON with options' do
|
|
34
|
-
JSON.parse(Bibliography.new({'test'=>'test'}).to_json).should_not be_nil
|
|
35
|
-
end
|
|
36
|
-
it 'returns valid JSON with options and data' do
|
|
37
|
-
JSON.parse(Bibliography.new([{'test'=>'test'}, [1,2]]).to_json).should_not be_nil
|
|
38
|
-
end
|
|
39
|
-
it 'supports round-trips' do
|
|
40
|
-
Bibliography.new(json).to_json.should == json
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This generates RSpec tests from the JSON test cases of the citeproc-tests
|
|
3
|
-
# suite.
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
# Filter applied to each test to decide whether we should run it. Use this
|
|
9
|
-
# to stay sane while the Processor is not feature-complete!
|
|
10
|
-
#
|
|
11
|
-
def filter(file, fixture)
|
|
12
|
-
# return ['affix_InterveningEmpty.json'].include?(File.basename(file))
|
|
13
|
-
# File.basename(file) =~ /bugreports_greek/i
|
|
14
|
-
# File.basename(file) =~ /sort_stripmark/i
|
|
15
|
-
# return File.basename(file) =~ /^date_rawparsesimpledate/i
|
|
16
|
-
true
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
module CiteProc
|
|
20
|
-
|
|
21
|
-
describe 'citeproc' do
|
|
22
|
-
|
|
23
|
-
let(:proc) { Processor.new }
|
|
24
|
-
|
|
25
|
-
Test::Fixtures::Processor.each_pair do |file, fixture|
|
|
26
|
-
|
|
27
|
-
tokens = File.basename(file).split(/_|\.json/)
|
|
28
|
-
|
|
29
|
-
describe tokens[0].downcase do
|
|
30
|
-
|
|
31
|
-
name = tokens[1].gsub(/([[:lower:]])([[:upper:]])/, '\1 \2').downcase
|
|
32
|
-
|
|
33
|
-
it name do
|
|
34
|
-
pending if tokens[0] =~ /^(position|disambiguate|integration|flipflop|collapse|parallel)/
|
|
35
|
-
|
|
36
|
-
proc.style = fixture['csl']
|
|
37
|
-
proc.import(fixture['input'])
|
|
38
|
-
proc.format = :html
|
|
39
|
-
|
|
40
|
-
if tokens[1] =~ /LocalizedDateFormats-([\w-]+)/
|
|
41
|
-
proc.locale = $1
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
proc.add_abbreviations(fixture['abbreviations']) if fixture['abbreviations']
|
|
45
|
-
|
|
46
|
-
case fixture['mode']
|
|
47
|
-
|
|
48
|
-
when 'citation'
|
|
49
|
-
# citations => process_citation_cluster
|
|
50
|
-
# citation_items || :all => make_citation_cluster
|
|
51
|
-
data = fixture['citation_items']
|
|
52
|
-
|
|
53
|
-
unless data
|
|
54
|
-
result = proc.cite((fixture['bibentries'] && fixture['bibentries'].last) || :all).map { |d| d[1] }.join
|
|
55
|
-
else
|
|
56
|
-
result = data.map { |d| proc.cite(d).map { |c| c[1] }.join }.join("\n")
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
when 'bibliography'
|
|
60
|
-
result = proc.bibliography(fixture['bibsection'] || :all).to_s
|
|
61
|
-
|
|
62
|
-
when 'bibliography-header'
|
|
63
|
-
pending('not yet implemented')
|
|
64
|
-
|
|
65
|
-
when 'bibliography-nosort'
|
|
66
|
-
pending('not yet implemented')
|
|
67
|
-
|
|
68
|
-
else
|
|
69
|
-
CiteProc.log.warn "unkown processor mode: #{fixture['mode']}"
|
|
70
|
-
pending('not yet implemented')
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
result.should == fixture['result']
|
|
74
|
-
|
|
75
|
-
end
|
|
76
|
-
end if filter(file, fixture)
|
|
77
|
-
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
data/spec/citeproc/date_spec.rb
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
module CiteProc
|
|
4
|
-
|
|
5
|
-
describe Date do
|
|
6
|
-
|
|
7
|
-
describe '#new' do
|
|
8
|
-
it { should_not be_nil }
|
|
9
|
-
|
|
10
|
-
it 'accepts date-parts containing a single year' do
|
|
11
|
-
Date.new('date-parts' => [[1998]]).year.should == 1998
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
describe '.create' do
|
|
17
|
-
it 'accepts parameters and returns a new instance' do
|
|
18
|
-
Date.create('date-parts' => [[2001, 1]]).year.should == 2001
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
describe '#sort' do
|
|
23
|
-
|
|
24
|
-
let(:ad2k) { Date.create('date-parts' => [[2000]])}
|
|
25
|
-
let(:may) { Date.create('date-parts' => [[2000, 5]])}
|
|
26
|
-
let(:first_of_may) { Date.create('date-parts' => [[2000, 5, 1]])}
|
|
27
|
-
|
|
28
|
-
let(:bc100) { Date.create('date-parts' => [[-100]]) }
|
|
29
|
-
let(:bc50) { Date.create('date-parts' => [[-50]]) }
|
|
30
|
-
let(:ad50) { Date.create('date-parts' => [[50]]) }
|
|
31
|
-
let(:ad100) { Date.create('date-parts' => [[100]]) }
|
|
32
|
-
|
|
33
|
-
it 'dates with more date-parts will come after those with fewer parts' do
|
|
34
|
-
(ad2k < may && may < first_of_may).should be true
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it 'negative years are sorted inversely' do
|
|
38
|
-
[ad50, bc100, bc50, ad100].sort.map(&:year).should == [-100, -50, 50, 100]
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
Test::Fixtures::Dates.keys.each do |feature|
|
|
43
|
-
describe feature do
|
|
44
|
-
Test::Fixtures::Dates[feature].each do |example|
|
|
45
|
-
|
|
46
|
-
it example['it'] do
|
|
47
|
-
dates = example['dates'].map { |date| Date.new(date) }
|
|
48
|
-
expected = example['expected']
|
|
49
|
-
options = example['options']
|
|
50
|
-
|
|
51
|
-
result = case feature
|
|
52
|
-
when 'display'
|
|
53
|
-
dates.map { |date| date.display(options) }
|
|
54
|
-
when 'json-api'
|
|
55
|
-
dates.map(&:to_json)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
result.should == expected
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
describe 'literal dates' do
|
|
66
|
-
|
|
67
|
-
it 'is not literal by default' do
|
|
68
|
-
Date.new.should_not be_literal
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it 'is literal if it contains only a literal field' do
|
|
72
|
-
Date.create(:literal => 'foo').should be_literal
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it 'is literal if it contains a literal field' do
|
|
76
|
-
Date.create('date-parts' => [[2000]], :literal => 'foo').should be_literal
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
describe 'uncertain dates' do
|
|
81
|
-
it 'are uncertain' do
|
|
82
|
-
Date.new({ 'date-parts' => [[-225]], 'circa' => '1' }).should be_uncertain
|
|
83
|
-
Date.new { |d| d.parts = [[-225]]; d.circa = true }.should be_uncertain
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
end
|