bibtex-ruby 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bibtex-ruby might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/History.txt +5 -0
- data/README.md +14 -11
- data/Rakefile +1 -1
- data/lib/bibtex/entry.rb +10 -0
- data/lib/bibtex/version.rb +1 -1
- data/test/test_entry.rb +13 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
BibTeX-Ruby
|
2
2
|
===========
|
3
3
|
|
4
|
-
The BibTeX-Ruby package contains a parser for BibTeX
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
be included in post-processing.
|
4
|
+
The BibTeX-Ruby package contains a parser for BibTeX bibliography files and a
|
5
|
+
class structure to manage BibTeX objects in Ruby. It is designed to support all
|
6
|
+
BibTeX objects (including @comment, string-replacements via @string, as well
|
7
|
+
as string concatenation using '#') and handles all content outside of BibTeX
|
8
|
+
objects as 'meta comments' which may or may not be included in post-processing.
|
10
9
|
|
11
10
|
|
12
11
|
Quickstart
|
@@ -29,6 +28,10 @@ Quickstart
|
|
29
28
|
}
|
30
29
|
> bib[:pickaxe][:author]
|
31
30
|
=> ["Thomas, Dave, and Fowler, Chad, and Hunt, Andy"]
|
31
|
+
> bib[:pickaxe].author
|
32
|
+
=> ["Thomas, Dave, and Fowler, Chad, and Hunt, Andy"]
|
33
|
+
> bib[:pickaxe].author = ['Thomas, D., Fowler, C., and Hunt, A.']
|
34
|
+
=> ["Thomas, D., and Fowler, C., and Hunt, A."]
|
32
35
|
|
33
36
|
|
34
37
|
Installation
|
@@ -54,8 +57,8 @@ Requirements
|
|
54
57
|
------------
|
55
58
|
|
56
59
|
* The parser generator [racc](http://i.loveruby.net/en/projects/racc/) is required to generate parser.
|
57
|
-
* The minitest gem is required to run the tests in older Ruby versions (prior to 1.9).
|
58
|
-
* The json gem is required on older ruby versions for JSON export.
|
60
|
+
* The *minitest* gem is required to run the tests in older Ruby versions (prior to 1.9).
|
61
|
+
* The *json* gem is required on older ruby versions for JSON export (prior to 1.9).
|
59
62
|
|
60
63
|
|
61
64
|
Usage
|
@@ -111,11 +114,11 @@ The Parser
|
|
111
114
|
----------
|
112
115
|
|
113
116
|
The BibTeX-Ruby parser is generated using the wonderful
|
114
|
-
[racc](http://i.loveruby.net/en/projects/racc/) parser generator.
|
117
|
+
[racc](http://i.loveruby.net/en/projects/racc/) parser generator. You can take
|
118
|
+
look at the grammar definition in the file `lib/bibtex/bibtex.y`.
|
115
119
|
|
116
120
|
|
117
|
-
The BibTeX Format
|
118
|
-
_________________
|
121
|
+
### The BibTeX Format
|
119
122
|
|
120
123
|
At first glance, the BibTeX file format seems very clear and simple;
|
121
124
|
however, there are a number of peculiarities which warrant some
|
data/Rakefile
CHANGED
@@ -17,7 +17,7 @@ spec = Gem::Specification.new do |s|
|
|
17
17
|
s.version = BibTeX::Version::STRING
|
18
18
|
s.summary = "A BibTeX parser written in Ruby"
|
19
19
|
s.description = "A (fairly complete) BibTeX parser written in Ruby. Supports regular BibTeX entries, @comments, string replacement via @string, and simple export formats (e.g. YAML)."
|
20
|
-
s.homepage = 'http://github.com/
|
20
|
+
s.homepage = 'http://inukshuk.github.com/bibtex-ruby'
|
21
21
|
s.authors = ["Sylvester Keil"]
|
22
22
|
s.email = 'http://sylvester.keil.or.at'
|
23
23
|
s.cert_chain = ["/Users/sylvester/.gem/keys/gem-public_cert.pem"]
|
data/lib/bibtex/entry.rb
CHANGED
@@ -62,6 +62,16 @@ module BibTeX
|
|
62
62
|
@type = type
|
63
63
|
end
|
64
64
|
|
65
|
+
def method_missing(name, *args)
|
66
|
+
return @fields[name]if @fields.has_key?(name)
|
67
|
+
return self.send(:add, name.to_s.chop.to_sym, args[0]) if name.match(/=$/)
|
68
|
+
super
|
69
|
+
end
|
70
|
+
|
71
|
+
def respond_to?(method)
|
72
|
+
@fields.has_key?(method.to_sym) || method.match(/=$/) || super
|
73
|
+
end
|
74
|
+
|
65
75
|
# Returns the value of the field with the given name.
|
66
76
|
def [](name)
|
67
77
|
@fields[name.to_sym]
|
data/lib/bibtex/version.rb
CHANGED
data/test/test_entry.rb
CHANGED
@@ -32,4 +32,17 @@ class TestEntry < MiniTest::Unit::TestCase
|
|
32
32
|
assert_equal(['Selected \\emph{Poetry} and `Tales\''], bib.data[0].fields[:title])
|
33
33
|
assert_equal(['Tales and Sketches'], bib.data[1].fields[:title])
|
34
34
|
end
|
35
|
+
|
36
|
+
def test_ghost_methods
|
37
|
+
bib = BibTeX::Bibliography.open('test/bib/07_entry.bib', :debug => true)
|
38
|
+
refute_nil(bib)
|
39
|
+
assert_equal(BibTeX::Bibliography, bib.class)
|
40
|
+
assert_equal(['Poe, Edgar A.'], bib.data[0].author)
|
41
|
+
|
42
|
+
expected = ['Poe, Edgar Allen']
|
43
|
+
bib.data[0].author = expected
|
44
|
+
|
45
|
+
assert_equal(expected, bib.data[0].author)
|
46
|
+
end
|
47
|
+
|
35
48
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 1.1.
|
8
|
+
- 2
|
9
|
+
version: 1.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sylvester Keil
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
J/FeJ8pSGMcNlQbhGpGIX+ARJK5ArG0Aq4214ttgefkdQJvw5r9hG3J4AgM=
|
36
36
|
-----END CERTIFICATE-----
|
37
37
|
|
38
|
-
date: 2011-01-
|
38
|
+
date: 2011-01-27 00:00:00 +01:00
|
39
39
|
default_executable:
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -129,7 +129,7 @@ files:
|
|
129
129
|
- test/test_preamble.rb
|
130
130
|
- test/test_string.rb
|
131
131
|
has_rdoc: true
|
132
|
-
homepage: http://github.com/
|
132
|
+
homepage: http://inukshuk.github.com/bibtex-ruby
|
133
133
|
licenses: []
|
134
134
|
|
135
135
|
post_install_message:
|
metadata.gz.sig
CHANGED
Binary file
|