bibtex-ruby 1.1.1 → 1.1.2
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.
- 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
|