asciidoctor-bibliography 0.3.0 → 0.4.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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +23 -4
  3. data/asciidoctor-bibliography.gemspec +8 -8
  4. data/lib/asciidoctor-bibliography.rb +6 -0
  5. data/lib/asciidoctor-bibliography/asciidoctor/bibliographer_preprocessor.rb +35 -23
  6. data/lib/asciidoctor-bibliography/bibliographer.rb +0 -15
  7. data/lib/asciidoctor-bibliography/citation.rb +29 -22
  8. data/lib/asciidoctor-bibliography/databases/bibtex.rb +4 -1
  9. data/lib/asciidoctor-bibliography/formatter.rb +28 -0
  10. data/lib/asciidoctor-bibliography/index.rb +24 -16
  11. data/lib/asciidoctor-bibliography/options.rb +65 -32
  12. data/lib/asciidoctor-bibliography/version.rb +1 -1
  13. data/lib/citeproc/ruby/formats/adoc.rb +36 -0
  14. data/lib/csl/styles/tex-citealp-authoryear.csl +117 -0
  15. data/lib/csl/styles/tex-citealp-numeric.csl +116 -0
  16. data/lib/csl/styles/tex-citealps-authoryear.csl +117 -0
  17. data/lib/csl/styles/tex-citealps-numeric.csl +116 -0
  18. data/lib/csl/styles/tex-citealt-authoryear.csl +119 -0
  19. data/lib/csl/styles/tex-citealt-numeric.csl +119 -0
  20. data/lib/csl/styles/tex-citealts-authoryear.csl +119 -0
  21. data/lib/csl/styles/tex-citealts-numeric.csl +119 -0
  22. data/lib/csl/styles/tex-citeauthor-authoryear.csl +116 -0
  23. data/lib/csl/styles/tex-citeauthor-numeric.csl +116 -0
  24. data/lib/csl/styles/tex-citeauthors-authoryear.csl +116 -0
  25. data/lib/csl/styles/tex-citeauthors-numeric.csl +116 -0
  26. data/lib/csl/styles/tex-citep-authoryear.csl +117 -0
  27. data/lib/csl/styles/tex-citep-numeric.csl +116 -0
  28. data/lib/csl/styles/tex-citeps-authoryear.csl +117 -0
  29. data/lib/csl/styles/tex-citeps-numeric.csl +116 -0
  30. data/lib/csl/styles/tex-citet-authoryear.csl +119 -0
  31. data/lib/csl/styles/tex-citet-numeric.csl +119 -0
  32. data/lib/csl/styles/tex-citets-authoryear.csl +119 -0
  33. data/lib/csl/styles/tex-citets-numeric.csl +119 -0
  34. data/lib/csl/styles/tex-citeyear-authoryear.csl +116 -0
  35. data/lib/csl/styles/tex-citeyear-numeric.csl +116 -0
  36. data/lib/csl/styles/tex-citeyearpar-authoryear.csl +116 -0
  37. data/lib/csl/styles/tex-citeyearpar-numeric.csl +116 -0
  38. data/samples/tex/sample-numbers.adoc +1 -1
  39. data/samples/tex/sample-sort.adoc +1 -1
  40. data/spec/citation_helper.rb +46 -0
  41. data/spec/citation_item_spec.rb +0 -2
  42. data/spec/csl/styles/tex_citealp_authoryear_spec.rb +42 -0
  43. data/spec/csl/styles/tex_citealp_numeric_spec.rb +42 -0
  44. data/spec/csl/styles/tex_citealps_authoryear_spec.rb +42 -0
  45. data/spec/csl/styles/tex_citealps_numeric_spec.rb +42 -0
  46. data/spec/csl/styles/tex_citealt_authoryear_spec.rb +42 -0
  47. data/spec/csl/styles/tex_citealt_numeric_spec.rb +42 -0
  48. data/spec/csl/styles/tex_citealts_authoryear_spec.rb +42 -0
  49. data/spec/csl/styles/tex_citealts_numeric_spec.rb +42 -0
  50. data/spec/csl/styles/tex_citeauthor_authoryear_spec.rb +42 -0
  51. data/spec/csl/styles/tex_citeauthor_numeric_spec.rb +42 -0
  52. data/spec/csl/styles/tex_citeauthors_authoryear_spec.rb +42 -0
  53. data/spec/csl/styles/tex_citeauthors_numeric_spec.rb +42 -0
  54. data/spec/csl/styles/tex_citep_authoryear_spec.rb +42 -0
  55. data/spec/csl/styles/tex_citep_numeric_spec.rb +42 -0
  56. data/spec/csl/styles/tex_citeps_authoryear_spec.rb +42 -0
  57. data/spec/csl/styles/tex_citeps_numeric_spec.rb +42 -0
  58. data/spec/csl/styles/tex_citet_authoryear_spec.rb +42 -0
  59. data/spec/csl/styles/tex_citet_numeric_spec.rb +42 -0
  60. data/spec/csl/styles/tex_citets_authoryear_spec.rb +42 -0
  61. data/spec/csl/styles/tex_citets_numeric_spec.rb +42 -0
  62. data/spec/csl/styles/tex_citeyear_authoryear_spec.rb +42 -0
  63. data/spec/csl/styles/tex_citeyear_numeric_spec.rb +42 -0
  64. data/spec/csl/styles/tex_citeyearpar_authoryear_spec.rb +42 -0
  65. data/spec/csl/styles/tex_citeyearpar_numeric_spec.rb +42 -0
  66. data/spec/database_spec.rb +20 -1
  67. data/spec/macros_spec.rb +21 -0
  68. data/spec/options_spec.rb +105 -1
  69. metadata +72 -24
  70. data/lib/asciidoctor-bibliography/formatters/csl.rb +0 -28
  71. data/lib/asciidoctor-bibliography/formatters/tex.rb +0 -187
  72. data/lib/asciidoctor-bibliography/helpers.rb +0 -41
  73. data/spec/helpers_spec.rb +0 -73
@@ -1,73 +0,0 @@
1
- require "asciidoctor-bibliography/helpers"
2
-
3
- describe AsciidoctorBibliography::Helpers do
4
- describe ".slice" do
5
- it "finds one or more existing keys" do
6
- expect(subject.slice({ foo: "bar", baz: "qux" }, :foo)).to eq(foo: "bar")
7
- expect(subject.slice({ foo: "bar", baz: "qux" }, :foo, :baz)).to eq(foo: "bar", baz: "qux")
8
- end
9
-
10
- it "returns nil for missing keys" do
11
- expect(subject.slice({}, :foo)).to eq(foo: nil)
12
- expect(subject.slice({ foo: "bar" }, :bar)).to eq(bar: nil)
13
- expect(subject.slice({ foo: "bar" }, :foo, :baz)).to eq(foo: "bar", baz: nil)
14
- end
15
- end
16
-
17
- describe ".join_nonempty" do
18
- it "ignores nils" do
19
- expect(subject.join_nonempty([nil], "-")).to eq("")
20
- expect(subject.join_nonempty(["foo", nil], "-")).to eq("foo")
21
- expect(subject.join_nonempty([nil, "bar"], "-")).to eq("bar")
22
- expect(subject.join_nonempty(["foo", nil, "bar"], "-")).to eq("foo-bar")
23
- end
24
-
25
- it "ignores empty strings" do
26
- expect(subject.join_nonempty([""], "-")).to eq("")
27
- expect(subject.join_nonempty(["foo", ""], "-")).to eq("foo")
28
- expect(subject.join_nonempty(["", "bar"], "-")).to eq("bar")
29
- expect(subject.join_nonempty(["foo", "", "bar"], "-")).to eq("foo-bar")
30
- end
31
- end
32
-
33
- describe ".html_to_asciidoc" do
34
- it "converts italic" do
35
- expect(subject.html_to_asciidoc("This is <i>italic</i>.")).to eq("This is _italic_.")
36
- end
37
-
38
- it "converts bold" do
39
- expect(subject.html_to_asciidoc("This is <b>bold</b>.")).to eq("This is *bold*.")
40
- end
41
-
42
- it "drops spans" do
43
- expect(subject.html_to_asciidoc('This is a <span attribute="value">span</span>.')).
44
- to eq("This is a span.")
45
- end
46
-
47
- it "drops curly brackets" do
48
- expect(subject.html_to_asciidoc("This is {bracketed}.")).
49
- to eq("This is bracketed.")
50
- end
51
- end
52
-
53
- describe ".to_sentence" do
54
- let(:new_options) do
55
- { words_connector: "1",
56
- two_words_connector: "2",
57
- last_word_connector: "3" }
58
- end
59
-
60
- it "concatenates arbitrary arrays" do
61
- expect(subject.to_sentence([])).to eq("")
62
- expect(subject.to_sentence(["foo"])).to eq("foo")
63
- expect(subject.to_sentence(["foo", "bar"])).to eq("foo and bar")
64
- expect(subject.to_sentence(["foo", "bar", "baz"])).to eq("foo, bar, and baz")
65
- expect(subject.to_sentence(["foo", "bar", "baz", "qux"])).to eq("foo, bar, baz, and qux")
66
- end
67
-
68
- it "accepts custom separators" do
69
- expect(subject.to_sentence(["foo", "bar"], new_options)).to eq("foo2bar")
70
- expect(subject.to_sentence(["foo", "bar", "baz"], new_options)).to eq("foo1bar3baz")
71
- end
72
- end
73
- end