citeproc-ruby 1.0.0 → 1.0.1
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 +4 -4
- data/README.md +107 -0
- data/lib/citeproc/ruby/renderer/text.rb +3 -3
- data/lib/citeproc/ruby/version.rb +1 -1
- data/spec/citeproc/ruby/renderer/text_spec.rb +6 -1
- data/spec/spec_helper.rb +3 -3
- metadata +3 -7
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -10
- data/.travis.yml +0 -17
- data/citeproc-ruby.gemspec +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2433b5b1f4dd36a3d56c7faf79dd6052699b98ec
|
4
|
+
data.tar.gz: 7b10890a22be22daa7592c8ce3eff268f9988f38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13ecf2f3659e060df54a32acd0aa0518fb2fc21e724a12938bb6988687457a43e3d4af249a5ef4a5784af38f50e56771aa4fe5fc7474b09f7e94cfa8e10800b6
|
7
|
+
data.tar.gz: 961189fe7024379256a8480f0db3aa1acb42bf9cd0b0bc772d2d2972591edb5b289a8fad6a6ed0f36d53aed2dc5850f16ead12d0abe7ca1bad800393a699584f
|
data/README.md
CHANGED
@@ -10,6 +10,113 @@ cite processor, please refer to the documentation of the
|
|
10
10
|
[](https://coveralls.io/r/inukshuk/citeproc-ruby?branch=master)
|
11
11
|
[](https://gemnasium.com/inukshuk/citeproc-ruby)
|
12
12
|
|
13
|
+
Quickstart
|
14
|
+
----------
|
15
|
+
Install CiteProc-Ruby and all official CSL styles (optional).
|
16
|
+
|
17
|
+
$ [sudo] gem install citeproc-ruby
|
18
|
+
$ [sudo] gem install csl-styles
|
19
|
+
|
20
|
+
Start rendering you references with any CSL style!
|
21
|
+
|
22
|
+
require 'citeproc'
|
23
|
+
require 'csl/styles'
|
24
|
+
|
25
|
+
# Create a new processor with the desired style,
|
26
|
+
# format, and locale.
|
27
|
+
cp = CiteProc::Processor.new style: 'apa', format: 'text'
|
28
|
+
|
29
|
+
# To see what styles are available in your current
|
30
|
+
# environment, run `CSL::Style.ls'; this also works for
|
31
|
+
# locales as `CSL::Locale.ls'.
|
32
|
+
|
33
|
+
# Tell the processor where to find your references. In this
|
34
|
+
# example we load them from a BibTeX bibliography using the
|
35
|
+
# bibtex-ruby gem.
|
36
|
+
cp.import BibTeX.open('./references.bib').to_citeproc
|
37
|
+
|
38
|
+
# Now you are ready for rendering; the processor API
|
39
|
+
# provides three main rendering methods: `process',
|
40
|
+
# `append', or `bibliography'.
|
41
|
+
|
42
|
+
# For simple one-off renditions, you can also call
|
43
|
+
# `render' in bibliography or citation mode:
|
44
|
+
cp.render :bibliography, id: 'knuth'
|
45
|
+
|
46
|
+
# This will return a rendered reference, like:
|
47
|
+
#-> Knuth, D. (1968). The art of computer programming. Boston: Addison-Wesley.
|
48
|
+
|
49
|
+
# CiteProc-Ruby exposes a full CSL API to you; this
|
50
|
+
# makes it possible to just alter CSL styles on the
|
51
|
+
# fly. For example, what if we want names not to be
|
52
|
+
# initialized even though APA style is configured to
|
53
|
+
# do so? We could change the CSL style itself, but
|
54
|
+
# we can also make a quick adjustment at runtime:
|
55
|
+
name = cp.engine.style.macros['author'] > 'names' > 'name'
|
56
|
+
|
57
|
+
# What just happened? We selected the current style's
|
58
|
+
# 'author' macro and then descended to the CSL name
|
59
|
+
# node via its parent names node. Now we can change
|
60
|
+
# this name node and the cite processor output will
|
61
|
+
# pick-up the changes right away:
|
62
|
+
name[:initialize] = 'false'
|
63
|
+
|
64
|
+
cp.render :bibliography, id: 'knuth'
|
65
|
+
#-> Knuth, Donald. (1968). The art of computer programming (Vol. 1). Boston: Addison-Wesley.
|
66
|
+
|
67
|
+
# Note that we have picked 'text' as the output format;
|
68
|
+
# if we want to make us of richer output formats we
|
69
|
+
# can switch to HTML instead:
|
70
|
+
cp.engine.format = 'html'
|
71
|
+
|
72
|
+
cp.render :bibliography, id: 'knuth'
|
73
|
+
#-> Knuth, Donald. (1968). <i>The art of computer programming</i> (Vol. 1). Boston: Addison-Wesley.
|
74
|
+
|
75
|
+
# You can also render citations on the fly.
|
76
|
+
cp.render :citation, id: 'knuth', locator: '23'
|
77
|
+
#-> (Knuth, 1968, p. 23)
|
78
|
+
|
79
|
+
Documentation
|
80
|
+
-------------
|
81
|
+
* [CiteProc Documentation](http://rubydoc.info/gems/citeproc/)
|
82
|
+
* [CiteProc-Ruby API Documentation](http://rubydoc.info/gems/citeproc-ruby/)
|
83
|
+
* [CSL-Ruby API Documentation](http://rubydoc.info/gems/csl/)
|
84
|
+
|
85
|
+
Optional Dependencies
|
86
|
+
---------------------
|
87
|
+
CiteProc-Ruby tries to minimize hard dependencies for increased compatibility.
|
88
|
+
You can speed up the XML parsing by installing
|
89
|
+
[Nokogiri](https://rubygems.org/gems/nokogiri); otherwise the REXML from the
|
90
|
+
Ruby standard library will be used.
|
91
|
+
|
92
|
+
Similarly, you can install either of the gems
|
93
|
+
[EDTF](https://rubygems.org/gems/edtf) or
|
94
|
+
[Chronic](https://rubygems.org/gems/chronic) to support a wide range of
|
95
|
+
additional inputs for date variables.
|
96
|
+
|
97
|
+
CSL Styles and Locales
|
98
|
+
----------------------
|
99
|
+
You can load CSL styles and locales by passing a respective XML string, file
|
100
|
+
name, or URL. You can also load styles and locales by name if the
|
101
|
+
corresponding files are installed in your local styles and locale directories.
|
102
|
+
By default, CSL-Ruby looks for CSL styles and locale files in
|
103
|
+
|
104
|
+
/usr/local/share/csl/styles
|
105
|
+
/usr/local/share/csl/locales
|
106
|
+
|
107
|
+
You can change these locations by changing the value of `CSL::Style.root` and
|
108
|
+
`CSL::Locale.root` respectively.
|
109
|
+
|
110
|
+
Alternatively, you can `gem install csl-styles` to install all official CSL
|
111
|
+
styles and locales. To make the styles and locales available, simply
|
112
|
+
`require 'csl/styles`.
|
113
|
+
|
114
|
+
Compatibility
|
115
|
+
-------------
|
116
|
+
The cite processor and the CSL API libraries have been developed for MRI,
|
117
|
+
Rubinius, and JRuby. Please note that we try to support only Ruby versions
|
118
|
+
1.9.3 and upwards.
|
119
|
+
|
13
120
|
Development
|
14
121
|
-----------
|
15
122
|
The CiteProc-Ruby source code is
|
@@ -22,10 +22,10 @@ module CiteProc
|
|
22
22
|
text = item.data.variable(node.variable, node.variable_options).to_s
|
23
23
|
|
24
24
|
# Check for abbreviations or short-form fallbacks!
|
25
|
-
context, was_short_form = node.variable.split(/-short
|
25
|
+
context, was_short_form = node.variable.split(/-short$/, 2)
|
26
26
|
|
27
|
-
if was_short_form || node[:form] == 'short'
|
28
|
-
if text.empty?
|
27
|
+
if !was_short_form.nil? || node[:form] == 'short'
|
28
|
+
if text.empty? && context != node.variable
|
29
29
|
text = item.data.variable(context, node.variable_options).to_s
|
30
30
|
end
|
31
31
|
|
@@ -58,7 +58,7 @@ module CiteProc
|
|
58
58
|
describe 'when the form attribute is set to :short' do
|
59
59
|
before(:each) {
|
60
60
|
item.data.title = 'the full title'
|
61
|
-
node[:form] =
|
61
|
+
node[:form] = 'short'
|
62
62
|
}
|
63
63
|
|
64
64
|
it "prefers the short version if available" do
|
@@ -69,6 +69,11 @@ module CiteProc
|
|
69
69
|
it "falls back to the variable if unavailable" do
|
70
70
|
renderer.render_text(item, node).should == 'the full title'
|
71
71
|
end
|
72
|
+
|
73
|
+
it "falls back to the long form if the short form variable is not present" do
|
74
|
+
node[:variable] = 'title-short'
|
75
|
+
renderer.render_text(item, node).should == 'the full title'
|
76
|
+
end
|
72
77
|
end
|
73
78
|
end
|
74
79
|
|
data/spec/spec_helper.rb
CHANGED
@@ -16,9 +16,9 @@ end
|
|
16
16
|
|
17
17
|
begin
|
18
18
|
case
|
19
|
-
when RUBY_PLATFORM
|
20
|
-
require 'debug'
|
21
|
-
Debugger.start
|
19
|
+
when RUBY_PLATFORM == 'java'
|
20
|
+
# require 'debug'
|
21
|
+
# Debugger.start
|
22
22
|
when defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
|
23
23
|
require 'rubinius/debugger'
|
24
24
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: citeproc-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvester Keil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: citeproc
|
@@ -47,12 +47,9 @@ executables: []
|
|
47
47
|
extensions: []
|
48
48
|
extra_rdoc_files: []
|
49
49
|
files:
|
50
|
-
- .coveralls.yml
|
51
50
|
- .document
|
52
|
-
- .gitignore
|
53
51
|
- .rspec
|
54
52
|
- .simplecov
|
55
|
-
- .travis.yml
|
56
53
|
- .yardopts
|
57
54
|
- AGPL
|
58
55
|
- BSDL
|
@@ -60,7 +57,6 @@ files:
|
|
60
57
|
- Guardfile
|
61
58
|
- README.md
|
62
59
|
- Rakefile
|
63
|
-
- citeproc-ruby.gemspec
|
64
60
|
- cucumber.yml
|
65
61
|
- features/bibliography.feature
|
66
62
|
- features/name_options.feature
|
@@ -131,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
127
|
version: '0'
|
132
128
|
requirements: []
|
133
129
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.
|
130
|
+
rubygems_version: 2.2.2
|
135
131
|
signing_key:
|
136
132
|
specification_version: 4
|
137
133
|
summary: A Citation Style Language (CSL) cite processor
|
data/.coveralls.yml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
service_name: travis-ci
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
bundler_args: --without debug extra
|
3
|
-
script: bundle exec rake test_with_coveralls
|
4
|
-
rvm:
|
5
|
-
- 2.1.0
|
6
|
-
- 2.0.0
|
7
|
-
- 1.9.3
|
8
|
-
- jruby-19mode
|
9
|
-
# - jruby-head
|
10
|
-
- rbx
|
11
|
-
- rbx-2.2.3
|
12
|
-
notifications:
|
13
|
-
email:
|
14
|
-
recipients:
|
15
|
-
- sylvester@keil.or.at
|
16
|
-
on_success: change
|
17
|
-
on_failure: always
|
data/citeproc-ruby.gemspec
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
lib = File.expand_path('../lib/', __FILE__)
|
3
|
-
$:.unshift lib unless $:.include?(lib)
|
4
|
-
|
5
|
-
require 'citeproc/ruby/version'
|
6
|
-
|
7
|
-
EXCLUDES = %w{
|
8
|
-
.coveralls.yml
|
9
|
-
.gitignore
|
10
|
-
.travis.yml
|
11
|
-
citeproc-ruby.gemspec
|
12
|
-
}
|
13
|
-
|
14
|
-
Gem::Specification.new do |s|
|
15
|
-
s.name = 'citeproc-ruby'
|
16
|
-
s.version = CiteProc::Ruby::VERSION.dup
|
17
|
-
s.platform = Gem::Platform::RUBY
|
18
|
-
|
19
|
-
s.authors = ['Sylvester Keil']
|
20
|
-
s.email = ['http://sylvester.keil.or.at']
|
21
|
-
|
22
|
-
s.homepage = 'https://github.com/inukshuk/citeproc-ruby'
|
23
|
-
s.summary = 'A Citation Style Language (CSL) cite processor'
|
24
|
-
s.description =
|
25
|
-
"""
|
26
|
-
CiteProc-Ruby is a Citation Style Language (CSL) 1.0.1 compatible cite
|
27
|
-
processor implementation written in pure Ruby.
|
28
|
-
""".gsub(/^\s+/, '')
|
29
|
-
|
30
|
-
s.license = 'AGPL'
|
31
|
-
s.date = Time.now.strftime('%Y-%m-%d')
|
32
|
-
|
33
|
-
s.required_ruby_version = '>= 1.9.3'
|
34
|
-
|
35
|
-
s.add_dependency 'citeproc', '~> 1.0'
|
36
|
-
s.add_dependency 'csl', '~> 1.2'
|
37
|
-
|
38
|
-
s.files = `git ls-files`.split("\n")
|
39
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
40
|
-
s.executables = []
|
41
|
-
s.require_path = 'lib'
|
42
|
-
|
43
|
-
s.has_rdoc = 'yard'
|
44
|
-
end
|
45
|
-
|
46
|
-
# vim: syntax=ruby
|