bibtex-ruby 2.0.5 → 2.0.6
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.
Potentially problematic release.
This version of bibtex-ruby might be problematic. Click here for more details.
- data/History.txt +7 -1
- data/README.md +144 -95
- data/lib/bibtex/elements.rb +16 -2
- data/lib/bibtex/version.rb +1 -1
- data/test/bibtex/test_bibliography.rb +13 -0
- metadata +12 -18
data/History.txt
CHANGED
data/README.md
CHANGED
@@ -8,77 +8,87 @@ tokenizes correctly formatted names; BibTeX-Ruby recognizes BibTeX string
|
|
8
8
|
replacements, joins values containing multiple strings or variables,
|
9
9
|
supports cross-references, and decodes common LaTeX formatting
|
10
10
|
instructions to unicode; if you are in a hurry, it also allows for easy
|
11
|
-
export/conversion to formats such as YAML, JSON, CiteProc, and
|
11
|
+
export/conversion to formats such as YAML, JSON, CiteProc/CSL, and
|
12
|
+
XML (BibTeXML).
|
12
13
|
|
13
|
-
For a list of projects using BibTeX-Ruby,
|
14
|
-
[
|
14
|
+
For a list of projects using BibTeX-Ruby, take a look at the
|
15
|
+
[project wiki](https://github.com/inukshuk/bibtex-ruby/wiki/Projects-Using-BibTeX-Ruby).
|
15
16
|
|
16
17
|
|
17
18
|
Quickstart
|
18
19
|
----------
|
19
20
|
|
21
|
+
Install and load BibTeX-Ruby in an IRB session:
|
22
|
+
|
20
23
|
$ [sudo] gem install bibtex-ruby
|
21
24
|
$ irb
|
22
25
|
>> require 'bibtex'
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
26
|
+
|
27
|
+
Open a BibTeX bibliography:
|
28
|
+
|
29
|
+
b = BibTeX.open('./ruby.bib')
|
30
|
+
|
31
|
+
Select a BibTeX entry and access individual fields:
|
32
|
+
|
33
|
+
b['pickaxe'].title
|
34
|
+
#=> "Programming Ruby 1.9: The Pragmatic Programmer's Guide"
|
35
|
+
b[:pickaxe].author.length
|
36
|
+
#=> 3
|
37
|
+
b[:pickaxe].author.to_s
|
38
|
+
#=> "Thomas, Dave and Fowler, Chad and Hunt, Andy"
|
39
|
+
b[:pickaxe].author[2].first
|
40
|
+
#=> "Andy"
|
41
|
+
|
42
|
+
Query a bibliography:
|
43
|
+
|
44
|
+
b['@book'].length
|
45
|
+
#=> 3 - the number books in the bibliography
|
46
|
+
b['@article'].length
|
47
|
+
#=> 0 - the number of articles in the bibliography
|
48
|
+
b['@book[year=2009]'].length
|
49
|
+
#=> 1 - the number of books published in 2009
|
50
|
+
|
51
|
+
Render your bibliography in one of
|
52
|
+
[many different citation styles](https://github.com/citation-style-language/styles)
|
53
|
+
(requires the **citeproc-ruby** gem):
|
54
|
+
|
55
|
+
require 'citeproc'
|
56
|
+
CiteProc.process b[:pickaxe].to_citeproc, :style => :apa
|
57
|
+
#=> "Thomas, D., Fowler, C., & Hunt, A. (2009). Programming Ruby 1.9: The Pragmatic Programmer's
|
52
58
|
Guide. The Facets of Ruby. Raleigh, North Carolina: The Pragmatic Bookshelf."
|
53
|
-
|
54
|
-
|
59
|
+
CiteProc.process b[:pickaxe].to_citeproc, :style => 'chicago-author-date'
|
60
|
+
#=> "Thomas, Dave, Chad Fowler, and Andy Hunt. 2009. Programming Ruby 1.9: The Pragmatic
|
55
61
|
Programmer's Guide. The Facets of Ruby.Raleigh, North Carolina: The Pragmatic Bookshelf."
|
56
|
-
|
57
|
-
|
62
|
+
CiteProc.process b[:pickaxe].to_citeproc, :style => :mla
|
63
|
+
#=> "Thomas, Dave, Chad Fowler, and Andy Hunt. Programming Ruby 1.9: The Pragmatic Programmer's
|
58
64
|
Guide. Raleigh, North Carolina: The Pragmatic Bookshelf, 2009."
|
59
65
|
|
66
|
+
Save a bibliography to a file:
|
60
67
|
|
68
|
+
b.save
|
69
|
+
#=> saves the original file
|
70
|
+
b.save_to(file)
|
71
|
+
#=> saves the bibliography in a new file
|
61
72
|
|
62
|
-
Requirements
|
63
|
-
------------
|
64
73
|
|
65
|
-
The BibTeX-Ruby gem has been tested on Ruby 1.8 and 1.9; it has
|
66
|
-
been confirmed to work with REE, JRuby, and Rubinius;
|
67
|
-
however, there have been some [issues](https://github.com/inukshuk/bibtex-ruby/issues)
|
68
|
-
with MacRuby implementations.
|
69
74
|
|
70
|
-
|
71
|
-
|
72
|
-
|
75
|
+
Compatibility
|
76
|
+
-------------
|
77
|
+
|
78
|
+
The BibTeX-Ruby gem has been developed and tested on Ruby 1.8 and 1.9; it has
|
79
|
+
been confirmed to work with JRuby, Rubinius, and REE, however, there have
|
80
|
+
been repeated [issues](https://github.com/inukshuk/bibtex-ruby/issues)
|
81
|
+
(performance mostly) with MacRuby caused by MacRuby's current StringScanner
|
82
|
+
implementation.
|
73
83
|
|
74
84
|
|
75
85
|
|
76
|
-
|
77
|
-
|
86
|
+
Documentation
|
87
|
+
-------------
|
78
88
|
|
79
89
|
It is very easy to use BibTeX-Ruby. You can use the top level utility methods
|
80
90
|
**BibTeX.open** and **BibTeX.parse** to open a '.bib' file or to parse a string
|
81
|
-
containing BibTeX contents.
|
91
|
+
containing BibTeX contents. By default, BibTeX-Ruby will discard all text outside
|
82
92
|
of regular BibTeX elements; however, if you wish to include everything, simply add
|
83
93
|
`:include => [:meta_content]` to your invocation of **BibTeX.open** or **BibTeX.parse**.
|
84
94
|
|
@@ -102,32 +112,45 @@ Alternatively, BibTeX-Ruby accepts ghost methods to conveniently access an entry
|
|
102
112
|
similar to **ActiveRecord::Base**. Therefore, it is equally possible to access the
|
103
113
|
'author' field above as `b[:pickaxe].author`.
|
104
114
|
|
115
|
+
BibTeX-Ruby wraps all values of fields in an entry are wrapped in Value objects.
|
116
|
+
This is necessary to transparently handle different types of values (e.g., strings,
|
117
|
+
dates, names etc.). These Value objects are designed to be hardly discernible
|
118
|
+
from regular Ruby strings, however, if you ever run into a problem with a field's
|
119
|
+
value, simply convert it to a string by calling the `#to_s` method.
|
120
|
+
|
105
121
|
Instead of parsing strings you can also create BibTeX elements directly in Ruby:
|
106
122
|
|
107
123
|
> bib = BibTeX::Bibliography.new
|
124
|
+
|
125
|
+
Using a Hash:
|
126
|
+
|
108
127
|
> bib << BibTeX::Entry.new({
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
128
|
+
:type => :book,
|
129
|
+
:key => :rails,
|
130
|
+
:address => 'Raleigh, North Carolina',
|
131
|
+
:author => 'Ruby, Sam and Thomas, Dave, and Hansson, David Heinemeier',
|
132
|
+
:booktitle => 'Agile Web Development with Rails',
|
133
|
+
:edition => 'third',
|
134
|
+
:keywords => 'ruby, rails',
|
135
|
+
:publisher => 'The Pragmatic Bookshelf',
|
136
|
+
:series => 'The Facets of Ruby',
|
137
|
+
:title => 'Agile Web Development with Rails',
|
138
|
+
:year => '2009'
|
139
|
+
})
|
140
|
+
|
141
|
+
Or programmatically:
|
142
|
+
|
121
143
|
> book = BibTeX::Entry.new
|
122
144
|
> book.type = :book
|
123
145
|
> book.key = :mybook
|
124
146
|
> bib << book
|
125
147
|
|
148
|
+
|
126
149
|
### Cross References
|
127
150
|
|
128
151
|
From version 2.0, BibTeX-Ruby correctly resolves entry cross-references, which
|
129
152
|
are commonly used for entries with type `inbook`, `incollection`, and
|
130
|
-
`inproceedings`. When an entry has a valid citation key in field `crossref`,
|
153
|
+
`inproceedings`. When an entry has a valid citation key in the field `crossref`,
|
131
154
|
BibTeX-Ruby will return any fields inherited from the parent entry:
|
132
155
|
|
133
156
|
> b = BibTeX.parse <<-END
|
@@ -157,43 +180,49 @@ Additionally, you can access individual elements or groups of elements via
|
|
157
180
|
their index using `Bibliography#[]`; this accessor also exposes some of the
|
158
181
|
query functionality with the exception of yielding to a block. For instance:
|
159
182
|
|
160
|
-
|
183
|
+
bib[-1]
|
161
184
|
=> Returns the last element of the Bibliography or nil
|
162
|
-
|
185
|
+
bib[1,2]
|
163
186
|
=> Returns the second and third elements or nil
|
164
|
-
|
165
|
-
|
166
|
-
|
187
|
+
bib[1..2]
|
188
|
+
=> Same as above
|
189
|
+
bib[:key]
|
167
190
|
=> Returns the first entry with key 'key' or nil
|
168
|
-
|
191
|
+
bib['key']
|
169
192
|
=> Returns all entries with key 'key' or []
|
170
|
-
|
193
|
+
bib['@article']
|
171
194
|
=> Returns all entries of type 'article' or []
|
172
|
-
|
195
|
+
bib['@preamble']
|
173
196
|
=> Returns all preamble objects (this is the same as Bibliography#preambles) or []
|
174
|
-
|
197
|
+
bib[/ruby/]
|
175
198
|
=> Returns all objects that match 'ruby' anywhere or []
|
176
|
-
|
199
|
+
bib['@book[keywords=ruby]']
|
177
200
|
=> Returns all books whose keywords attribute equals 'ruby' or []
|
178
|
-
|
201
|
+
bib['@book[keywords!=ruby]']
|
202
|
+
=> Returns all books whose keywords attribute does not equal 'ruby'
|
203
|
+
bib['@book[keywords/=ruby]']
|
204
|
+
=> Same as above
|
205
|
+
bib.q('@book[keywords^=ruby]')
|
206
|
+
=> Returns all books whose keywords attribute matches /ruby/
|
207
|
+
bib.query('@book') { |e| e.keywords.split(/,/).length > 1 }
|
179
208
|
=> Returns all book entries with two or more keywords or []
|
180
209
|
|
181
210
|
Queries offer syntactic sugar for common enumerator invocations:
|
182
211
|
|
183
|
-
|
212
|
+
bib.query(:all, '@book')
|
184
213
|
=> same as bib.select { |b| b.has_type?(:book) }
|
185
|
-
|
214
|
+
bib.query('@book')
|
186
215
|
=> same as above
|
187
|
-
|
216
|
+
bib.query(:first, '@book')
|
188
217
|
=> same as bib.detect { |b| b.has_type?(:book) }
|
189
|
-
|
218
|
+
bib.query(:none, '@book')
|
190
219
|
=> same as bib.reject { |b| b.has_type?(:book) }
|
191
220
|
|
192
221
|
You can also use queries to delete entries in your bibliography:
|
193
222
|
|
194
|
-
|
223
|
+
bib.delete(/ruby/)
|
195
224
|
=> deletes all object that match 'ruby' in their string representation
|
196
|
-
|
225
|
+
bib.delete('@comment')
|
197
226
|
=> strips all BibTeX comments from the bibliography
|
198
227
|
|
199
228
|
|
@@ -257,13 +286,13 @@ symbols that cannot be replaced will not be parsed.
|
|
257
286
|
In the following example, string replacement can take place, thus all names
|
258
287
|
are parsed and can easily be mapped to their last names:
|
259
288
|
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
289
|
+
BibTeX.parse(<<-END)[1].author.map(&:last)
|
290
|
+
@string{ ht = "Nathaniel Hawthorne" }
|
291
|
+
@book{key,
|
292
|
+
author = ht # " and Melville, Herman"
|
293
|
+
}
|
294
|
+
END
|
295
|
+
#=> ["Hawthorne", "Melville"]
|
267
296
|
|
268
297
|
Another useful method is `Bibliography#names` which returns all names in
|
269
298
|
your bibliography (authors, editors, translators). For example, to quickly
|
@@ -271,7 +300,9 @@ expand the initials of a name across your entire bibliography, you could
|
|
271
300
|
use the following snippet:
|
272
301
|
|
273
302
|
b.names.each do |name|
|
274
|
-
|
303
|
+
if name.sort_order =~ /^Poe, E/
|
304
|
+
name.first = 'Edgar Allen'
|
305
|
+
end
|
275
306
|
end
|
276
307
|
|
277
308
|
|
@@ -284,15 +315,18 @@ to a given filter. Starting with version 1.3.9 BibTeX-Ruby includes a
|
|
284
315
|
LaTeX filter that depends on the
|
285
316
|
[latex-decode gem](http://rubygems.org/gems/latex-decode). Example:
|
286
317
|
|
287
|
-
|
288
|
-
|
289
|
-
|
318
|
+
faust = '@book{faust, title = {Faust: Der Trag\"odie Erster Teil}}'
|
319
|
+
BibTeX.parse(faust).convert(:latex)[:faust].title
|
320
|
+
#=> "Faust: Der Tragödie Erster Teil"
|
290
321
|
|
291
322
|
Conditional conversions are also supported:
|
292
323
|
|
293
|
-
|
294
|
-
|
295
|
-
|
324
|
+
faust1 = '@book{faust1, title = {Faust: Der Trag\"odie Erster Teil}}'
|
325
|
+
faust2 = '@book{faust2, title = {Faust: Der Trag\"odie Zweiter Teil}}'
|
326
|
+
p BibTeX.parse(faust1 + faust2).convert(:latex) { |e| e.key == :faust2 }.to_s
|
327
|
+
|
328
|
+
Returns:
|
329
|
+
|
296
330
|
@book{faust1,
|
297
331
|
title = {Faust: Der Trag\"odie Erster Teil}
|
298
332
|
}
|
@@ -304,6 +338,13 @@ If you need to express a condition on the basis of individual fields, use the
|
|
304
338
|
conversion methods of BibTeX::Entry with a block instead (the block will be
|
305
339
|
passed the key and value of each field prior to conversion).
|
306
340
|
|
341
|
+
When working with Bibliographies that contain LaTeX it is often best to
|
342
|
+
apply the filter upon opening or parsing the Bibliography. You can do this,
|
343
|
+
by passing the `:filter` option:
|
344
|
+
|
345
|
+
BibTeX.open 'references.bib', :filter => :latex
|
346
|
+
|
347
|
+
|
307
348
|
### Exports
|
308
349
|
|
309
350
|
Furthermore, BibTeX-Ruby allows you to export your bibliography for processing
|
@@ -423,6 +464,7 @@ look at the LALR grammar in the file
|
|
423
464
|
For more information about the BibTeX format and the parser's idiosyncrasies
|
424
465
|
[refer to the project wiki](https://github.com/inukshuk/bibtex-ruby/wiki/The-BibTeX-Format).
|
425
466
|
|
467
|
+
|
426
468
|
Contributing
|
427
469
|
------------
|
428
470
|
|
@@ -440,6 +482,10 @@ useful examples, take a look at the cucumber features in the
|
|
440
482
|
[features/issues/](https://github.com/inukshuk/bibtex-ruby/blob/master/features/issues)
|
441
483
|
directory).
|
442
484
|
|
485
|
+
The parser generator [racc](http://i.loveruby.net/en/projects/racc/) is
|
486
|
+
required to generate the BibTeX parser and the name parser; you do not need
|
487
|
+
to install it to use the bibtex-ruby gem.
|
488
|
+
|
443
489
|
To run the tests and cucumber examples execute these commands (from within
|
444
490
|
the bibtex-ruby directory):
|
445
491
|
|
@@ -457,8 +503,11 @@ To execute the test suite continuously while you're working run:
|
|
457
503
|
Credits
|
458
504
|
-------
|
459
505
|
|
460
|
-
Copyright 2011 [Sylvester Keil](http://sylvester.keil.or.at/).
|
506
|
+
Copyright 2011-2012 [Sylvester Keil](http://sylvester.keil.or.at/).
|
507
|
+
|
508
|
+
See the [contributor page on GitHub](https://github.com/inukshuk/bibtex-ruby/contributors)
|
509
|
+
for a list of all the awesome developers who have made BibTeX-Ruby
|
510
|
+
possible.
|
461
511
|
|
462
|
-
|
463
|
-
and is distributed under the terms and conditions of the GNU GPL. See
|
512
|
+
This software is distributed under the terms and conditions of the GNU GPL. See
|
464
513
|
LICENSE for details.
|
data/lib/bibtex/elements.rb
CHANGED
@@ -105,8 +105,22 @@ module BibTeX
|
|
105
105
|
# Returns true if the element meets all of the given conditions.
|
106
106
|
def meets?(*conditions)
|
107
107
|
conditions.flatten.all? do |condition|
|
108
|
-
property, value = condition.split(/\s
|
109
|
-
|
108
|
+
property, operator, value = condition.split(/\s*([!~\/\^]?=)\s*/)
|
109
|
+
|
110
|
+
if property.nil?
|
111
|
+
true
|
112
|
+
else
|
113
|
+
case operator
|
114
|
+
when '!=', '/='
|
115
|
+
!respond_to?(property) || send(property).to_s != value
|
116
|
+
when '^='
|
117
|
+
respond_to?(property) && send(property).to_s.match("^#{value}")
|
118
|
+
when '~='
|
119
|
+
respond_to?(property) && send(property).to_s.match(value)
|
120
|
+
else
|
121
|
+
respond_to?(property) && send(property).to_s == value
|
122
|
+
end
|
123
|
+
end
|
110
124
|
end
|
111
125
|
end
|
112
126
|
|
data/lib/bibtex/version.rb
CHANGED
@@ -124,6 +124,19 @@ module BibTeX
|
|
124
124
|
assert_equal 1, @bib['@book[keywords=ruby]'].length
|
125
125
|
end
|
126
126
|
|
127
|
+
it 'supports queries with negative conditions' do
|
128
|
+
assert_equal 2, @bib['@*[keywords!=ruby]'].length
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'supports queries with pattern conditions' do
|
132
|
+
assert_equal 1, @bib['@*[keywords~=rails]'].length
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'supports queries with start-pattern conditions' do
|
136
|
+
assert_equal 2, @bib['@*[keywords^=ruby]'].length
|
137
|
+
end
|
138
|
+
|
139
|
+
|
127
140
|
it 'supports queries by bibtex element' do
|
128
141
|
entry = Entry.parse(<<-END).first
|
129
142
|
@article{segaran2007,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bibtex-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: latex-decode
|
16
|
-
requirement: &
|
16
|
+
requirement: &70204962101620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.0.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70204962101620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: multi_json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70204962100860 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.3'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70204962100860
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70204962100340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.9'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70204962100340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: racc
|
49
|
-
requirement: &
|
49
|
+
requirement: &70204962099640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '1.4'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70204962099640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rdoc
|
60
|
-
requirement: &
|
60
|
+
requirement: &70204962098520 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '3.9'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70204962098520
|
69
69
|
description: ! "\t\tBibTeX-Ruby is the Rubyist's swiss-army-knife for all things BibTeX.
|
70
70
|
It\n includes a parser for all common BibTeX objects (@string, @preamble,\n @comment
|
71
71
|
and regular entries) and a sophisticated name parser that\n tokenizes correctly
|
@@ -180,18 +180,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
180
|
- - ! '>='
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '0'
|
183
|
-
segments:
|
184
|
-
- 0
|
185
|
-
hash: -230691617197525967
|
186
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
184
|
none: false
|
188
185
|
requirements:
|
189
186
|
- - ! '>='
|
190
187
|
- !ruby/object:Gem::Version
|
191
188
|
version: '0'
|
192
|
-
segments:
|
193
|
-
- 0
|
194
|
-
hash: -230691617197525967
|
195
189
|
requirements: []
|
196
190
|
rubyforge_project:
|
197
191
|
rubygems_version: 1.8.10
|