philologic-client 0.0.7 → 0.0.8

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/HISTORY.rdoc CHANGED
@@ -1,5 +1,9 @@
1
1
  = Philologic::Client History
2
2
 
3
+ == 2012-01-10 v0.0.8
4
+
5
+ * Added +Philologic::Client#frequency()+ table searching.
6
+
3
7
  == 2012-01-09 v0.0.7
4
8
 
5
9
  * Fixed bug in URI fetching
data/README.rdoc CHANGED
@@ -26,6 +26,9 @@
26
26
  # Frequency search by arbitrary key-value pairs
27
27
  client.frequency( :query => 'sartre', :foo => 1 ).each { |result| puts result }
28
28
 
29
+ # Links for first result in frequency table search
30
+ client.frequency('sartre').first.links.each { |link| puts link }
31
+
29
32
  # Get/Set encoding
30
33
  encoding = client.encoding
31
34
  client.encoding = 'utf-8' # Default
@@ -51,9 +54,8 @@ https://github.com/blairc/philologic-client/
51
54
 
52
55
  == To Do
53
56
 
54
- * Add frequency table searching
55
57
  * Add collocation table searching
56
58
  * Add +children+ to Philologic::Document
57
59
  * Add +parent+ to Philologic::Document
58
- * Unify Philologic::Link and Philologic::Document
60
+ * Unify (as much as possible) Philologic::Document, Philologic::Key, Philologic::Link
59
61
 
@@ -5,6 +5,6 @@ module Philologic
5
5
  #
6
6
  # Philologic::Client version
7
7
  #
8
- VERSION = '0.0.7'
8
+ VERSION = '0.0.8'
9
9
  end
10
10
  end
@@ -34,6 +34,9 @@ require 'open-uri'
34
34
  # # Frequency search by arbitrary key-value pairs
35
35
  # client.frequency( :query => 'sartre', :foo => 1 ).each { |result| puts result }
36
36
  #
37
+ # # Links for first result in frequency table search
38
+ # client.frequency('sartre').first.links.each { |link| puts link }
39
+ #
37
40
  # # Get/Set encoding
38
41
  # encoding = client.encoding
39
42
  # client.encoding = 'utf-8' # Default
@@ -59,11 +62,10 @@ require 'open-uri'
59
62
  #
60
63
  # == To Do
61
64
  #
62
- # * Add frequency table searching
63
65
  # * Add collocation table searching
64
66
  # * Add +children+ to Philologic::Document
65
67
  # * Add +parent+ to Philologic::Document
66
- # * Unify Philologic::Link and Philologic::Document
68
+ # * Unify (as much as possible) Philologic::Document, Philologic::Key, Philologic::Link
67
69
  #
68
70
  module Philologic # :nodoc:
69
71
 
@@ -190,6 +192,14 @@ module Philologic # :nodoc:
190
192
  return results
191
193
  elsif !doc.css('div.philologic_object').first.nil?
192
194
  return Philologic::Document.new( doc.css('div.philologic_object').first )
195
+ elsif !doc.css('table.philologic_frequency').first.nil?
196
+ results = []
197
+ doc.css('table.philologic_frequency').css('td.philologic_frequency_key').each do |key|
198
+ key.css('a').each do |a|
199
+ results << Philologic::Key.new(self, a) # TODO Why not a select?
200
+ end
201
+ end
202
+ return results
193
203
  # TODO else
194
204
  # warn "WARNING: could not parse document"
195
205
  end
@@ -240,6 +250,56 @@ module Philologic # :nodoc:
240
250
  end # class Philologic::Document
241
251
 
242
252
 
253
+ #
254
+ # Philologic key.
255
+ #
256
+ class Key
257
+
258
+ #
259
+ # Initialize Philologic::Key object.
260
+ #
261
+ # Params:
262
+ # +client+:: Philologic::Client object
263
+ # +document+:: Nokogiri document
264
+ #
265
+ def initialize(client, document)
266
+ @client = client
267
+ @doc = document
268
+ end
269
+
270
+ #
271
+ # Returns value of attribute +key+ or +nil+.
272
+ #
273
+ def [](key)
274
+ @doc.attributes.key?(key) ? @doc.attributes[key].value : nil
275
+ end
276
+
277
+ #
278
+ # Returns Philologic::Link objects referenced by this Philologic::Key object.
279
+ #
280
+ def links
281
+ q = self['href'].sub( %r{^\./\?}, '' ).split('&')
282
+ @client.search( Hash[ *q.collect { |v| v.split('=', 2) }.flatten ] )
283
+ end
284
+
285
+ #
286
+ # Returns key text.
287
+ #
288
+ def text
289
+ @text = @doc.text.lstrip.rstrip if @text.nil?
290
+ @text
291
+ end
292
+
293
+ #
294
+ # Return String representation of object.
295
+ #
296
+ def to_s
297
+ [ self['href'], self.text ].join(' | ')
298
+ end
299
+
300
+ end # class Philologic::Key
301
+
302
+
243
303
  #
244
304
  # Philologic link.
245
305
  #
@@ -285,5 +345,4 @@ module Philologic # :nodoc:
285
345
 
286
346
  end # class Philologic::Link
287
347
 
288
-
289
348
  end # module Philologic
@@ -0,0 +1,145 @@
1
+ <html><head><title>TLFsorted: search for sartre</title></head><body><div class='philologic_concordance'><p class='description'>running query for sartre @ TLFsorted with arg 0. displaying 1 - 48 of 48 hits.</p><ol start='1'><li class='philologic_occurence'>
2
+ <a class='philologic_cite' href='./1839/3/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
3
+ ... qui se destinait à la psychiatrie. À la surprise générale, Jean-Paul <span class="hilite">Sartre</span> avait échoué à l'écrit. Le concours me parut difficile, mais je ne perdis pas co...</li>
4
+ <li class='philologic_occurence'>
5
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
6
+ ...ades. Je les connaissais presque tous. Seul me demeurait hermétique le clan formé par <span class="hilite">Sartre</span>, Nizan et Herbaud; ils ne frayaient avec personne; ils n'assistaient q...</li>
7
+ <li class='philologic_occurence'>
8
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
9
+ ...lf et derrière ses grosses lunettes d'écaille je lui trouvais un regard très intimidant. <span class="hilite">Sartre</span> n'avait pas une mauvaise tête, mais on disait qu'il était le plus terrible des trois e...</li>
10
+ <li class='philologic_occurence'>
11
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
12
+ ...me paraissait accessible: Herbaud. Il était marié lui aussi. En compagnie de <span class="hilite">Sartre</span> et de Nizan, il m'ignorait. Quand je le rencontrais seul, nous échangions ...</li>
13
+ <li class='philologic_occurence'>
14
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
15
+ ...existerais jamais. Un après-midi, je l'avais aperçu rue Soufflot, accompagné de <span class="hilite">Sartre</span> et de Nizan, et donnant le bras à une femme en gris: je m'étais sentie exclue...</li>
16
+ <li class='philologic_occurence'>
17
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
18
+ ...t il était monté à Paris pour préparer normale. Il avait connu en hypo-khâgne <span class="hilite">Sartre</span> et Nizan et il me parla beaucoup d'eux; il admirait Nizan, pour sa dis...</li>
19
+ <li class='philologic_occurence'>
20
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
21
+ ...; il admirait Nizan, pour sa distinction désinvolte, mais il était surtout lié avec <span class="hilite">Sartre</span> qu'il disait prodigieusement intéressant. Nos autres condisciples, il les méprisai...</li>
22
+ <li class='philologic_occurence'>
23
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
24
+ ...ditais ainsi sur mon destin, j'aperçus Herbaud qui longeait le bassin en compagnie de <span class="hilite">Sartre</span>: il me vit, et il m'ignora. Mystère et mensonge des journaux intimes: je ne mention...</li>
25
+ <li class='philologic_occurence'>
26
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
27
+ ... la Sorbonne. Vêtu d'un costume d'été beige clair, il était assis à côté de <span class="hilite">Sartre</span> sur le rebord d'une fenêtre. Il me tendit la main, dans un long geste affectueux, e...</li>
28
+ <li class='philologic_occurence'>
29
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
30
+ ...r en faisant allusion à notre rencontre, au Luxembourg; il aurait aimé me présenter <span class="hilite">Sartre</span>, "mais si je ne respecte pas les ruminations de Clairaut, dit-il, je ne me perm...</li>
31
+ <li class='philologic_occurence'>
32
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
33
+ ... Il me remit, de la part de <span class="hilite">Sartre</span>, un dessin que celui-ci m'avait dédié et qui représentait: Leibniz au bai...</li>
34
+ <li class='philologic_occurence'>
35
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
36
+ ...cosmologie eugénique", inventée à partir du potomak, et à laquelle il avait rallié <span class="hilite">Sartre</span> et Nizan; tous trois appartenaient à la plus haute caste, celle des eugènes, ...</li>
37
+ <li class='philologic_occurence'>
38
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
39
+ ...le est très bien d'ailleurs votre voix, mais elle est rauque. Elle nous divertit beaucoup, <span class="hilite">Sartre</span> et moi." Je découvris que j'avais une démarche, une voix: c'était nouveau. J...</li>
40
+ <li class='philologic_occurence'>
41
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
42
+ ...reuves; puis il comptait quitter Paris, et à son retour il préparerait son oral avec <span class="hilite">Sartre</span> et Nizan. Finies, nos rencontres à la nationale: comme j'allais les regret...</li>
43
+ <li class='philologic_occurence'>
44
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
45
+ ...Orne; à son retour, dans une dizaine de jours, il préparerait l'oral du concours avec <span class="hilite">Sartre</span> et Nizan qui m'invitaient cordialement à me joindre à eux. D'ici là, ...</li>
46
+ <li class='philologic_occurence'>
47
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
48
+ ...artre et Nizan qui m'invitaient cordialement à me joindre à eux. D'ici là, <span class="hilite">Sartre</span> voulait faire ma connaissance: il me proposait un rendez-vous pour un soir prochain. ...</li>
49
+ <li class='philologic_occurence'>
50
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
51
+ ... Mais Herbaud me demanda de ne pas y aller: <span class="hilite">Sartre</span> profiterait de son absence pour m'accaparer." Je ne veux pas qu'on touche à mes pl...</li>
52
+ <li class='philologic_occurence'>
53
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
54
+ ...nts " me dit Herbaud d'un ton complice. Nous décidâmes que ma soeur retrouverait <span class="hilite">Sartre</span> à l'heure et à l'endroit prévus; elle lui dirait que j'étais partie brusquement pour...</li>
55
+ <li class='philologic_occurence'>
56
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
57
+ ... je flânai, je me donnai du bon temps. Pendant la soirée que Poupette passa avec <span class="hilite">Sartre</span>, je récapitulai joyeusement l'année qui venait de s'écouler, et toute ma jeunesse; je...</li>
58
+ <li class='philologic_occurence'>
59
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
60
+ ...ent en ce monde. Quand ma soeur rentra, elle me félicita d'être restée à la maison. <span class="hilite">Sartre</span> avait courtoisement encaissé notre mensonge; il l'avait emmenée au cinéma et s'était...</li>
61
+ <li class='philologic_occurence'>
62
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
63
+ ...tait montré très aimable; mais la conversation avait chômé." Tout ce qu'il raconte de <span class="hilite">Sartre</span>, Herbaud l'invente lui-même " me dit ma soeur qui connaissait un peu Herba...</li>
64
+ <li class='philologic_occurence'>
65
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
66
+ ...travailler Leibniz. J'étais un peu effarouchée quand j'entrai dans la chambre de <span class="hilite">Sartre</span>; il y avait un grand désordre de livres et de papiers, des mégots dans tous les coins,...</li>
67
+ <li class='philologic_occurence'>
68
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
69
+ ...and désordre de livres et de papiers, des mégots dans tous les coins, une énorme fumée. <span class="hilite">Sartre</span> m'accueillit mondainement; il fumait la pipe. Silencieux, une cigarette collée au c...</li>
70
+ <li class='philologic_occurence'>
71
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
72
+ ...elai. Leibniz nous ennuyait et il fut décidé que nous le connaissions assez. <span class="hilite">Sartre</span> se chargea de nous expliquer le contrat social, sur lequel il avait des lumière...</li>
73
+ <li class='philologic_occurence'>
74
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
75
+ ...ement Herbaud tandis que Nizan contemplait ses ongles d'un air absorbé; mais <span class="hilite">Sartre</span> avait toujours le dessus. Impossible de lui en vouloir: il se mettait en quatre pour...</li>
76
+ <li class='philologic_occurence'>
77
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
78
+ ... turnes de l'école normale, je grimpai rituellement sur les toits. Pendant ces promenades, <span class="hilite">Sartre</span> et Herbaud chantaient à pleine ...</li>
79
+ <li class='philologic_occurence'>
80
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
81
+ ... titre d'un chapitre de Descartes: "de Dieu. Derechef qu'il existe." <span class="hilite">Sartre</span> avait une belle voix et un vaste répertoire: old man river et tous les airs de ...</li>
82
+ <li class='philologic_occurence'>
83
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
84
+ ... De Beauvoir." "Bien, bien", fit Nizan d'un ton sardonique, et <span class="hilite">Sartre</span> dit: "soit " avec bonhomie. Herbaud était morose, ce jour-là, parce qu'il...</li>
85
+ <li class='philologic_occurence'>
86
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
87
+ ...de Michel-Ange. Puis il me parla des différences qui le distinguaient de <span class="hilite">Sartre</span> et de Nizan. Il se donnait sans arrière-pensée aux joies de ce monde: les...</li>
88
+ <li class='philologic_occurence'>
89
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
90
+ ...nature, les voyages, les intrigues et les plaisirs." Eux, ils veulent toujours comprendre; <span class="hilite">Sartre</span> surtout " me dit-il. Il ajouta sur un ton de frayeur admirative: "Sartre, s...</li>
91
+ <li class='philologic_occurence'>
92
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
93
+ ...mprendre; Sartre surtout " me dit-il. Il ajouta sur un ton de frayeur admirative: "<span class="hilite">Sartre</span>, sauf peut-être quand il dort, il pense tout le temps! " Il accepta que Sartre...</li>
94
+ <li class='philologic_occurence'>
95
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
96
+ ...: "Sartre, sauf peut-être quand il dort, il pense tout le temps! " Il accepta que <span class="hilite">Sartre</span> passât avec nous la soirée du 14 juillet. Après un dîner dans un restaurant alsa...</li>
97
+ <li class='philologic_occurence'>
98
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
99
+ ...urant alsacien, nous regardâmes le feu d'artifice, assis sur une pelouse de la cité. Puis <span class="hilite">Sartre</span>, dont la munificence était légendaire, nous embarqua dans un taxi, et, au falstaff, ru...</li>
100
+ <li class='philologic_occurence'>
101
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
102
+ ...ontaient un tas d'histoires. J'étais aux anges. Ma soeur s'était trompée: je trouvai <span class="hilite">Sartre</span> encore plus amusant qu'Herbaud; néanmoins, nous convînmes tous trois que celu...</li>
103
+ <li class='philologic_occurence'>
104
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
105
+ ...Je vous aime vraiment beaucoup, Castor " me disait-il. Comme je devais dîner avec <span class="hilite">Sartre</span> chez les Nizan, et qu'il n'était pas libre, il me demanda avec une tendre auto...</li>
106
+ <li class='philologic_occurence'>
107
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
108
+ ...endemain, je me dirigeai vers la Sorbonne le coeur battant; à la porte, je rencontrai <span class="hilite">Sartre</span>: j'étais admissible ainsi que Nizan et lui. Herbaud avait échou..</li>
109
+ <li class='philologic_occurence'>
110
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
111
+ ...e l'aie revu: "tu diras au Castor tout le bonheur que je lui souhaite " écrivit-il à <span class="hilite">Sartre</span> dans un pneu où il l'avisait de son départ. Il réapparut une semaine plus tard, e...</li>
112
+ <li class='philologic_occurence'>
113
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
114
+ ...ions tous deux que j'avais menti. "À partir de maintenant, je vous prends en main " me dit <span class="hilite">Sartre</span> quand il m'eut annoncé mon admissibilité. Il avait le goût des amitiés féminine...</li>
115
+ <li class='philologic_occurence'>
116
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
117
+ ... plus souvent nous nous promenions tous les deux seuls. Sur les quais de la Seine, <span class="hilite">Sartre</span> m'achetait des pardaillan et des fantomas qu'il préférait de loin à l...</li>
118
+ <li class='philologic_occurence'>
119
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
120
+ ...nd ils prétendaient m'expliquer, les autres gens m'annexaient à leur monde, ils m'irritaient; <span class="hilite">Sartre</span> au contraire essayait de me situer dans mon propre système, il me comprenait à la lumi...</li>
121
+ <li class='philologic_occurence'>
122
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
123
+ ...ments, les vies dangereuses, les hommes perdus, les excès d'alcool, de drogue, de passion. <span class="hilite">Sartre</span> soutenait que, quand on a quelque chose à dire, tout gaspillage est criminel. L'oeu...</li>
124
+ <li class='philologic_occurence'>
125
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
126
+ ... par les nouvelles littéraires. " Nous avons reçu de J-P <span class="hilite">Sartre</span> des pages remarquables", écrivit Roland Alix en présentant sa répon...</li>
127
+ <li class='philologic_occurence'>
128
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
129
+ ...ent qui se supposerait libre." Comparant sa génération à celle qui l'avait précédée, <span class="hilite">Sartre</span> concluait: "nous sommes plus malheureux, mais plus sympathiques." Cette dernière p...</li>
130
+ <li class='philologic_occurence'>
131
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
132
+ ...x, mais plus sympathiques." Cette dernière phrase m'avait fait rire; mais en causant avec <span class="hilite">Sartre</span> j'entrevis la richesse de ce qu'il appelait sa " théorie de la contingence", où se tro...</li>
133
+ <li class='philologic_occurence'>
134
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
135
+ ...e très insolite; impossible de s'inspirer d'aucune mode, d'aucun modèle: autant la pensée de <span class="hilite">Sartre</span> m'avait frappée par sa maturité, autant je fus déconcertée par la gaucherie des essa...</li>
136
+ <li class='philologic_occurence'>
137
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
138
+ ...Nodier m'en avaient imposé: mais de loin, vaguement, sans que je me confronte à eux. <span class="hilite">Sartre</span>, tous les jours, toute la journée je me mesurais à lui et dans nos discussions, je ne ...</li>
139
+ <li class='philologic_occurence'>
140
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
141
+ ... la première: une parmi d'autres, et soudain incertaine de ses véritables capacités. Car <span class="hilite">Sartre</span> n'était pas le seul qui m'obligeât à la modestie: Nizan, Aron, ...</li>
142
+ <li class='philologic_occurence'>
143
+ <a class='philologic_cite' href='./1839/4/0/0'><span class='philologic_property' title='author'>Beauvoir S. de</span>, <span class='philologic_property' title='title'>Memoires Jeune Fille Rangee</span> <span class='philologic_property' title='date'>(1958)</span></a>
144
+ ...marqués par une sorte de grâce funeste; impossible de communiquer avec eux sans réserve. <span class="hilite">Sartre</span> répondait exactement au voeu de mes quinze ans: il était le double en qui je retrouvai...</li>
145
+ </ol><div class='more'><a href='./?query=sartre&title=&author=Beauvoir+S.+de&q_start=1&q_end=48'>1-48</a> </div></div></body></html>
@@ -10,22 +10,25 @@ require 'mocha'
10
10
  class TestPhilologicClient < Test::Unit::TestCase
11
11
 
12
12
  def setup
13
- @test_dir = File.expand_path( File.dirname(__FILE__) )
14
- @data_dir = File.expand_path( File.join( @test_dir, 'data' ) )
13
+ @test_dir = File.expand_path( File.dirname(__FILE__) )
14
+ @data_dir = File.expand_path( File.join( @test_dir, 'data' ) )
15
15
 
16
- @doc_path = 'doc_file.html'
17
- @doc_file = File.join( @data_dir, @doc_path )
16
+ @doc_path = 'doc_file.html'
17
+ @doc_file = File.join( @data_dir, @doc_path )
18
18
 
19
- @endpoint = @data_dir
19
+ @endpoint = @data_dir
20
20
 
21
- @freq_path = 'frequency_sartre.html'
22
- @freq_file = File.join( @data_dir, @freq_path )
21
+ @freq_path = 'frequency_sartre.html'
22
+ @freq_file = File.join( @data_dir, @freq_path )
23
23
 
24
- @root_path = 'root_file.html'
25
- @root_file = File.join( @data_dir, @root_path )
24
+ @freq_links_path = 'frequency_links.html'
25
+ @freq_links_file = File.join( @data_dir, @freq_links_path )
26
26
 
27
- @query_path = 'query_sartre.html'
28
- @query_file = File.join( @data_dir, @query_path )
27
+ @root_path = 'root_file.html'
28
+ @root_file = File.join( @data_dir, @root_path )
29
+
30
+ @query_path = 'query_sartre.html'
31
+ @query_file = File.join( @data_dir, @query_path )
29
32
  end
30
33
 
31
34
 
@@ -298,34 +301,101 @@ class TestPhilologicClient < Test::Unit::TestCase
298
301
 
299
302
  results = client.frequency('sartre')
300
303
 
301
- assert_nil results
302
- # assert_not_nil results
303
- # assert_kind_of Array, results
304
- # assert_equal 50, results.size
305
- # results.each do |result|
306
- # assert_kind_of Philologic::Link, result
307
- # assert_equal 'philologic_cite', result['class']
308
- # assert_not_nil result['href']
309
- # assert_nil result['some random attribute']
310
- # assert_not_nil result['author']
311
- # assert_nil result['filename']
312
- # assert_not_nil result['title']
313
- # assert_raise(NoMethodError) { result.text }
314
- # end
315
-
316
- # assert_equal './54/1/0/0', results.first['href']
317
- # assert_equal 'Peiresc N. de', results.first['author']
318
- # assert_equal 'Lettres T. 6 1602-1637', results.first['title']
319
- # assert_nil results.first['filename']
320
- # assert_raise(NoMethodError) { results.first.text }
321
- # assert_equal './54/1/0/0 | Lettres T. 6 1602-1637 | Peiresc N. de', results.first.to_s
322
-
323
- # assert_equal './1792/11/0/0', results.last['href']
324
- # assert_equal 'Gide A.', results.last['author']
325
- # assert_equal 'Journal 1939-1949', results.last['title']
326
- # assert_nil results.last['filename']
327
- # assert_raise(NoMethodError) { results.last.text }
328
- # assert_equal './1792/11/0/0 | Journal 1939-1949 | Gide A.', results.last.to_s
304
+ assert_not_nil results
305
+ assert_kind_of Array, results
306
+ assert_equal 15, results.size
307
+ results.each do |result|
308
+ assert_kind_of Philologic::Key, result
309
+ assert_nil result['class']
310
+ assert_not_nil result['href']
311
+ assert_nil result['some random attribute']
312
+ assert_nil result['author']
313
+ assert_nil result['filename']
314
+ assert_nil result['title']
315
+ assert_not_nil result.text
316
+ end
317
+
318
+ assert_equal './?query=sartre&author=Beauvoir+S.+de&title=', results.first['href']
319
+ assert_equal 'Beauvoir S. de', results.first.text
320
+ assert_equal './?query=sartre&author=Beauvoir+S.+de&title= | Beauvoir S. de', results.first.to_s
321
+
322
+ assert_equal './?query=sartre&author=Schaeffer+P.&title=', results.last['href']
323
+ assert_equal 'Schaeffer P.', results.last.text
324
+ assert_equal './?query=sartre&author=Schaeffer+P.&title= | Schaeffer P.', results.last.to_s
325
+ end
326
+ end
327
+
328
+ def test_frequency_search_with_key_value_pairs
329
+ Philologic::Client.new(@endpoint) do |client|
330
+ doc = client.send( :_parse, Nokogiri::HTML( open(@freq_file) ) )
331
+ client.stubs(:_get).with('?query=sartre&report=frequency').returns(doc)
332
+
333
+ results = client.frequency( :query => 'sartre' )
334
+
335
+ assert_not_nil results
336
+ assert_kind_of Array, results
337
+ assert_equal 15, results.size
338
+ results.each do |result|
339
+ assert_kind_of Philologic::Key, result
340
+ assert_nil result['class']
341
+ assert_not_nil result['href']
342
+ assert_nil result['some random attribute']
343
+ assert_nil result['author']
344
+ assert_nil result['filename']
345
+ assert_nil result['title']
346
+ assert_not_nil result.text
347
+ end
348
+
349
+ assert_equal './?query=sartre&author=Beauvoir+S.+de&title=', results.first['href']
350
+ assert_equal 'Beauvoir S. de', results.first.text
351
+ assert_equal './?query=sartre&author=Beauvoir+S.+de&title= | Beauvoir S. de', results.first.to_s
352
+
353
+ assert_equal './?query=sartre&author=Schaeffer+P.&title=', results.last['href']
354
+ assert_equal 'Schaeffer P.', results.last.text
355
+ assert_equal './?query=sartre&author=Schaeffer+P.&title= | Schaeffer P.', results.last.to_s
356
+ end
357
+ end
358
+
359
+ def test_philologic_key_links
360
+ Philologic::Client.new(@endpoint) do |client|
361
+ freq_doc = client.send( :_parse, Nokogiri::HTML( open(@freq_file) ) )
362
+ freq_links_doc = client.send( :_parse, Nokogiri::HTML( open(@freq_links_file) ) )
363
+ client.stubs(:_get).with('?query=sartre&report=frequency').returns(freq_doc)
364
+ client.stubs(:_get).with('?author=Beauvoir+S.+de&query=sartre&title=').returns(freq_links_doc)
365
+
366
+ results = client.frequency( :query => 'sartre' )
367
+ assert_not_nil results
368
+
369
+ links = results.first.links
370
+
371
+ assert_not_nil links
372
+ assert_kind_of Array, links
373
+ assert_equal 48, links.size
374
+
375
+ links.each do |link|
376
+ assert_kind_of Philologic::Link, link
377
+ assert_equal 'philologic_cite', link['class']
378
+ assert_not_nil link['href']
379
+ assert_nil link['some random attribute']
380
+ assert_not_nil link['author']
381
+ assert_nil link['filename']
382
+ assert_not_nil link['title']
383
+ assert_raise(NoMethodError) { link.text }
384
+ end
385
+
386
+ assert_equal './1839/3/0/0', links.first['href']
387
+ assert_equal 'Beauvoir S. de', links.first['author']
388
+ assert_equal 'Memoires Jeune Fille Rangee', links.first['title']
389
+ assert_nil links.first['filename']
390
+ assert_raise(NoMethodError) { links.first.text }
391
+ assert_equal './1839/3/0/0 | Memoires Jeune Fille Rangee | Beauvoir S. de', links.first.to_s
392
+
393
+ assert_equal './1839/4/0/0', links.last['href']
394
+ assert_equal 'Beauvoir S. de', links.last['author']
395
+ assert_equal 'Memoires Jeune Fille Rangee', links.last['title']
396
+ assert_nil links.last['filename']
397
+ assert_raise(NoMethodError) { links.last.text }
398
+ assert_equal './1839/4/0/0 | Memoires Jeune Fille Rangee | Beauvoir S. de', links.last.to_s
329
399
 
330
400
  end
331
401
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philologic-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
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-01-09 00:00:00.000000000Z
12
+ date: 2012-01-10 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70176773639140 !ruby/object:Gem::Requirement
16
+ requirement: &70366750022700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70176773639140
24
+ version_requirements: *70366750022700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &70176773638700 !ruby/object:Gem::Requirement
27
+ requirement: &70366750022260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70176773638700
35
+ version_requirements: *70366750022260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &70176773638280 !ruby/object:Gem::Requirement
38
+ requirement: &70366750021840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70176773638280
46
+ version_requirements: *70366750021840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc-readme
49
- requirement: &70176773637780 !ruby/object:Gem::Requirement
49
+ requirement: &70366750021340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.1.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70176773637780
57
+ version_requirements: *70366750021340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &70176773637360 !ruby/object:Gem::Requirement
60
+ requirement: &70366750020920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70176773637360
68
+ version_requirements: *70366750020920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nokogiri
71
- requirement: &70176773636900 !ruby/object:Gem::Requirement
71
+ requirement: &70366750020460 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70176773636900
79
+ version_requirements: *70366750020460
80
80
  description: Ruby client for interacting with the Philologic API.
81
81
  email:
82
82
  - blair.christensen@gmail.com
@@ -94,6 +94,7 @@ files:
94
94
  - lib/philologic-client/version.rb
95
95
  - philologic-client.gemspec
96
96
  - test/data/doc_file.html
97
+ - test/data/frequency_links.html
97
98
  - test/data/frequency_sartre.html
98
99
  - test/data/query_sartre.html
99
100
  - test/data/root_file.html
@@ -112,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
113
  version: '0'
113
114
  segments:
114
115
  - 0
115
- hash: -2183879243771319628
116
+ hash: -832477634477053375
116
117
  required_rubygems_version: !ruby/object:Gem::Requirement
117
118
  none: false
118
119
  requirements:
@@ -121,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  version: '0'
122
123
  segments:
123
124
  - 0
124
- hash: -2183879243771319628
125
+ hash: -832477634477053375
125
126
  requirements: []
126
127
  rubyforge_project: philologic-client
127
128
  rubygems_version: 1.8.7
@@ -130,6 +131,7 @@ specification_version: 3
130
131
  summary: Ruby client for interacting with the Philologic API.
131
132
  test_files:
132
133
  - test/data/doc_file.html
134
+ - test/data/frequency_links.html
133
135
  - test/data/frequency_sartre.html
134
136
  - test/data/query_sartre.html
135
137
  - test/data/root_file.html