philologic-client 0.0.3 → 0.0.4

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,10 @@
1
1
  = Philologic::Client History
2
2
 
3
+ == 2011-12-30 v0.0.4
4
+
5
+ * Set +endpoint+ in +Philologic::Client+ initializer
6
+ * Add +search+ to +Philologic::Client+
7
+
3
8
  == 2011-12-29 v0.0.3
4
9
 
5
10
  * Documentation fix
data/README.rdoc CHANGED
@@ -4,8 +4,7 @@
4
4
 
5
5
  require 'philologic-client'
6
6
 
7
- Philologic::Client.new do |client|
8
- client.endpoint = 'http://philologic.example.org'
7
+ Philologic::Client.new(endpoint) do |client|
9
8
 
10
9
  # Get children of root
11
10
  client.children.each do |child|
@@ -17,6 +16,15 @@
17
16
  doc = client.document( first['href'] )
18
17
  txt = doc.text
19
18
 
19
+ # Search (currently only limited support)
20
+ client.search('sartre').each do |result|
21
+ puts [ child['href'], child['author'], child['title'] ].join("\t")
22
+ end
23
+
24
+ # Get/Set endpoint
25
+ endpoint = client.endpoint
26
+ client.endpoint = 'http://philologic.example.org'
27
+
20
28
  end
21
29
 
22
30
  == Author
@@ -34,11 +42,11 @@ https://github.com/blairc/philologic-client/
34
42
 
35
43
  == To Do
36
44
 
37
- * Set +endpoint+ in Philologic::Client initializer
38
- * Add +search+ to Philologic::Client
39
45
  * Add +document+ to Philologic::Link
40
46
  * Add +children+ to Philologic::Document
41
47
  * Add +parent+ to Philologic::Document
42
48
  * Make Nokogiri encoding configurable
49
+ * Expand search support
50
+ * Unifiy Philologic::Link and Philologic::Document
43
51
  * Build +RDoc+
44
52
 
data/Rakefile CHANGED
@@ -1,7 +1,11 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rake/clean'
2
3
  require 'rake/testtask'
3
4
  require 'rdoc-readme/rake_task'
4
5
 
6
+ %w{ coverage doc out.txt pkg }.each { |p| CLEAN.include(p) }
7
+ %w{ build install test }.each { |t| task t.to_sym => [ 'rdoc:readme' ] }
8
+
5
9
  task :default => :test
6
10
 
7
11
  Rake::TestTask.new do |t|
@@ -10,6 +14,5 @@ Rake::TestTask.new do |t|
10
14
  t.verbose = true
11
15
  end
12
16
 
13
- # Pull in RDoc from source file and print to destination file.
14
17
  RDoc::Readme::RakeTask.new 'lib/philologic-client.rb', 'README.rdoc'
15
18
 
@@ -12,8 +12,7 @@ require 'open-uri'
12
12
  #
13
13
  # require 'philologic-client'
14
14
  #
15
- # Philologic::Client.new do |client|
16
- # client.endpoint = 'http://philologic.example.org'
15
+ # Philologic::Client.new(endpoint) do |client|
17
16
  #
18
17
  # # Get children of root
19
18
  # client.children.each do |child|
@@ -25,6 +24,15 @@ require 'open-uri'
25
24
  # doc = client.document( first['href'] )
26
25
  # txt = doc.text
27
26
  #
27
+ # # Search (currently only limited support)
28
+ # client.search('sartre').each do |result|
29
+ # puts [ child['href'], child['author'], child['title'] ].join("\t")
30
+ # end
31
+ #
32
+ # # Get/Set endpoint
33
+ # endpoint = client.endpoint
34
+ # client.endpoint = 'http://philologic.example.org'
35
+ #
28
36
  # end
29
37
  #
30
38
  # == Author
@@ -42,12 +50,12 @@ require 'open-uri'
42
50
  #
43
51
  # == To Do
44
52
  #
45
- # * Set +endpoint+ in Philologic::Client initializer
46
- # * Add +search+ to Philologic::Client
47
53
  # * Add +document+ to Philologic::Link
48
54
  # * Add +children+ to Philologic::Document
49
55
  # * Add +parent+ to Philologic::Document
50
56
  # * Make Nokogiri encoding configurable
57
+ # * Expand search support
58
+ # * Unifiy Philologic::Link and Philologic::Document
51
59
  # * Build +RDoc+
52
60
  #
53
61
  module Philologic
@@ -66,8 +74,11 @@ module Philologic
66
74
  #
67
75
  # Initialize Philologic::Client
68
76
  #
69
- def initialize
70
- @endpoint = nil
77
+ # Params:
78
+ # +endpoint+:: Philologic endpoint (defaults to +nil+)
79
+ #
80
+ def initialize( endpoint = nil )
81
+ @endpoint = endpoint
71
82
  yield self if block_given?
72
83
  self
73
84
  end
@@ -94,6 +105,27 @@ module Philologic
94
105
  return doc.kind_of?(::Philologic::Document) ? doc : nil
95
106
  end
96
107
 
108
+ #
109
+ # Return +Array+ of Philologic::Link objects.
110
+ #
111
+ # *NOTE:* Currently only returns the first page of results.
112
+ #
113
+ # Params:
114
+ # +query+:: Search for this query string.
115
+ #
116
+ def search(query)
117
+ raise('no query specified') if query.nil?
118
+ doc = _query(query)
119
+ return doc.kind_of?(Array) ? doc : nil
120
+ end
121
+
122
+ private
123
+
124
+ def _build_query(query)
125
+ raise('no query specified') if query.nil?
126
+ "?query=#{query}"
127
+ end
128
+
97
129
  def _get(path)
98
130
  raise('no endpoint specified') if @endpoint.nil?
99
131
  uri = "#{ @endpoint }#{ @endpoint =~ /\/$/ || '/' }#{ path }"
@@ -107,12 +139,22 @@ module Philologic
107
139
  children << Philologic::Link.new(cite) # TODO Why not a select?
108
140
  end
109
141
  return children
142
+ elsif !doc.css('div.philologic_concordance').first.nil?
143
+ results = []
144
+ doc.css('div.philologic_concordance').css('a.philologic_cite').each do |cite|
145
+ results << Philologic::Link.new(cite) # TODO Why not a select?
146
+ end
147
+ return results
110
148
  elsif !doc.css('div.philologic_object').first.nil?
111
149
  return Philologic::Document.new( doc.css('div.philologic_object').first )
112
150
  end
113
151
  nil
114
152
  end
115
153
 
154
+ def _query(query)
155
+ return _get( _build_query(query) )
156
+ end
157
+
116
158
  end # class Philologic::Client
117
159
 
118
160
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Philologic
4
4
  class Client
5
- VERSION = '0.0.3'
5
+ VERSION = '0.0.4'
6
6
  end
7
7
  end
@@ -0,0 +1,151 @@
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 - 50 of 151 hits.</p><ol start='1'><li class='philologic_occurence'>
2
+ <a class='philologic_cite' href='./54/1/0/0'><span class='philologic_property' title='author'>Peiresc N. de</span>, <span class='philologic_property' title='title'>Lettres T. 6 1602-1637</span> <span class='philologic_property' title='date'>(1625)</span></a>
3
+ ...re pas l'adresse directement à nous ny à voz lettres ny au pacquet, mais à Monsieur <span class="hilite">Sartre</span> respondent de Monsr Segnier qui nous les rendra gentilment. Car je...</li>
4
+ <li class='philologic_occurence'>
5
+ <a class='philologic_cite' href='./54/1/0/0'><span class='philologic_property' title='author'>Peiresc N. de</span>, <span class='philologic_property' title='title'>Lettres T. 6 1602-1637</span> <span class='philologic_property' title='date'>(1625)</span></a>
6
+ ...l vous plairra m'escrire en ceste ville seront avec une couverture par dessus à Monsr <span class="hilite">Sartre</span> pres la loge. Je ne vous escris plus de l'heureux succez de nostre voyaige, car par ...</li>
7
+ <li class='philologic_occurence'>
8
+ <a class='philologic_cite' href='./54/1/0/0'><span class='philologic_property' title='author'>Peiresc N. de</span>, <span class='philologic_property' title='title'>Lettres T. 6 1602-1637</span> <span class='philologic_property' title='date'>(1625)</span></a>
9
+ ...croistre les pencions d'un escu le moys pour chascun. J'attends le retour de Monsr <span class="hilite">Sartre</span> parce que s'il a payé * 27 (...) écus à Lyon pour Monsr Pacius...</li>
10
+ <li class='philologic_occurence'>
11
+ <a class='philologic_cite' href='./54/1/0/0'><span class='philologic_property' title='author'>Peiresc N. de</span>, <span class='philologic_property' title='title'>Lettres T. 6 1602-1637</span> <span class='philologic_property' title='date'>(1625)</span></a>
12
+ ...squ'il vous plaist nous permettre de continuer nostre lecture textuelle, je prierai Mr <span class="hilite">Sartre</span> de nous fournir nostre pencion pour tout le quartier qu'avons à demeurer en ceste ville...</li>
13
+ <li class='philologic_occurence'>
14
+ <a class='philologic_cite' href='./1685/1/0/0'><span class='philologic_property' title='author'>Nizan P.</span>, <span class='philologic_property' title='title'>La Conspiration</span> <span class='philologic_property' title='date'>(1938)</span></a>
15
+ ...Il n'y avait aucune chance de voir arriver l'adjudant Giudici ou le chef de bataillon <span class="hilite">Sartre</span>. L'armoire était à demi pleine de dossiers dont la chemise portait, écrit en...</li>
16
+ <li class='philologic_occurence'>
17
+ <a class='philologic_cite' href='./1685/1/0/0'><span class='philologic_property' title='author'>Nizan P.</span>, <span class='philologic_property' title='title'>La Conspiration</span> <span class='philologic_property' title='date'>(1938)</span></a>
18
+ ...ui avait oublié de s'enfermer repoussa sa chaise et se mit au garde à vous. Le commandant <span class="hilite">Sartre</span> qui avait oublié ses gants au bureau le matin venait d'entrer. Simon avait...</li>
19
+ <li class='philologic_occurence'>
20
+ <a class='philologic_cite' href='./1685/1/0/0'><span class='philologic_property' title='author'>Nizan P.</span>, <span class='philologic_property' title='title'>La Conspiration</span> <span class='philologic_property' title='date'>(1938)</span></a>
21
+ ...toutes les hypothèses! Simon qui venait de surprendre le regard que le commandant <span class="hilite">Sartre</span> avait échangé avec le colonel, se dit que c'était gagné. Cette explication qui e...</li>
22
+ <li class='philologic_occurence'>
23
+ <a class='philologic_cite' href='./1688/0/0/0/0/0/0/3/168'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>La Nausee</span> <span class='philologic_property' title='date'>(1938)</span></a>
24
+ ... La Nausee <span class="hilite">Sartre</span> J.-P. ARTFL Project, University of Chicago...</li>
25
+ <li class='philologic_occurence'>
26
+ <a class='philologic_cite' href='./1688/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>La Nausee</span> <span class='philologic_property' title='date'>(1938)</span></a>
27
+ ...usee La nausée: roman <span class="hilite">Sartre</span> J.-P. Sartre, Jean Paul, 1905-1980. ...</li>
28
+ <li class='philologic_occurence'>
29
+ <a class='philologic_cite' href='./1688/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>La Nausee</span> <span class='philologic_property' title='date'>(1938)</span></a>
30
+ ...} Sartre, Jean Paul, $d 1905- {245} La nausée $h [computer file] : $b roman / $c Jean-Paul <span class="hilite">Sartre</span>. {534} $p Electronic text of: $a Sartre, Jean Paul, 1905- $t La nausée. $c Paris : G...</li>
31
+ <li class='philologic_occurence'>
32
+ <a class='philologic_cite' href='./1736/0/0/0/0/0/0/3/170'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mouches</span> <span class='philologic_property' title='date'>(1943)</span></a>
33
+ ... Les Mouches <span class="hilite">Sartre</span> J.-P. ARTFL Project, University of Chicago...</li>
34
+ <li class='philologic_occurence'>
35
+ <a class='philologic_cite' href='./1736/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mouches</span> <span class='philologic_property' title='date'>(1943)</span></a>
36
+ ...es Mouches Les mouches <span class="hilite">Sartre</span> J.-P. Sartre, Jean Paul, 1905-1980. ...</li>
37
+ <li class='philologic_occurence'>
38
+ <a class='philologic_cite' href='./1736/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mouches</span> <span class='philologic_property' title='date'>(1943)</span></a>
39
+ ... {100} Sartre, Jean Paul, $d 1905- {245} Les mouches $h [computer file] / $c J.-P. <span class="hilite">Sartre</span>. {534} $p Electronic text of: $a Sartre, Jean Paul, 1905- $t Les mouches. $n In: Thé...</li>
40
+ <li class='philologic_occurence'>
41
+ <a class='philologic_cite' href='./1748/0/0/0/0/0/0/2/168'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Huis-Clos</span> <span class='philologic_property' title='date'>(1944)</span></a>
42
+ ... Huis-Clos <span class="hilite">Sartre</span> J.-P. ARTFL Project, University of Chicago...</li>
43
+ <li class='philologic_occurence'>
44
+ <a class='philologic_cite' href='./1748/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Huis-Clos</span> <span class='philologic_property' title='date'>(1944)</span></a>
45
+ ...Huis-Clos Huis-clos <span class="hilite">Sartre</span> J.-P. Sartre, Jean Paul, 1905-1980. ...</li>
46
+ <li class='philologic_occurence'>
47
+ <a class='philologic_cite' href='./1748/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Huis-Clos</span> <span class='philologic_property' title='date'>(1944)</span></a>
48
+ ...81 {100} Sartre, Jean Paul, $d 1905- {245} Huis-clos $h [computer file] / $c J.-P. <span class="hilite">Sartre</span>. {534} $p Electronic text of: $a Sartre, Jean Paul, 1905- $t Huis-clos. $n In: Théâ...</li>
49
+ <li class='philologic_occurence'>
50
+ <a class='philologic_cite' href='./1750/1/0/0'><span class='philologic_property' title='author'>Benda J.</span>, <span class='philologic_property' title='title'>La France Byzantine</span> <span class='philologic_property' title='date'>(1945)</span></a>
51
+ ...e de maints littérateurs modernes est celle d'un philosophe (J. - P. <span class="hilite">Sartre</span>, l'imaginaire ), selon qui le propre de l'image, singulièrement en art, est de s...</li>
52
+ <li class='philologic_occurence'>
53
+ <a class='philologic_cite' href='./1750/1/0/0'><span class='philologic_property' title='author'>Benda J.</span>, <span class='philologic_property' title='title'>La France Byzantine</span> <span class='philologic_property' title='date'>(1945)</span></a>
54
+ .... Valéry, J. Paulhan, J. - P. <span class="hilite">Sartre</span>; longues pages de Proust sur l'emploi de l'imparfait, du verbe avoir, d...</li>
55
+ <li class='philologic_occurence'>
56
+ <a class='philologic_cite' href='./1756/46/0/0'><span class='philologic_property' title='author'>Mauriac F.</span>, <span class='philologic_property' title='title'>Le Baillon Denoue</span> <span class='philologic_property' title='date'>(1945)</span></a>
57
+ ...attaient pas au grand jour, comme des soldats, écrit admirablement Jean-Paul <span class="hilite">Sartre</span>. En toute circonstance ils étaient seuls, ils étaient traqués dans la solitude, a...</li>
58
+ <li class='philologic_occurence'>
59
+ <a class='philologic_cite' href='./1758/4/0/0'><span class='philologic_property' title='author'>Merleau-Ponty M.</span>, <span class='philologic_property' title='title'>Phenomenologie Perception</span> <span class='philologic_property' title='date'>(1945)</span></a>
60
+ ...nsforma et, une seconde, je perçus une ampoule de caoutchouc... etc. J P <span class="hilite">Sartre</span>. Plus tard, se fit un autre changement... tout me parut pâteux et écaillé à la f...</li>
61
+ <li class='philologic_occurence'>
62
+ <a class='philologic_cite' href='./1758/5/0/0'><span class='philologic_property' title='author'>Merleau-Ponty M.</span>, <span class='philologic_property' title='title'>Phenomenologie Perception</span> <span class='philologic_property' title='date'>(1945)</span></a>
63
+ ...és ou des réalités qui tendent à persévérer dans l'être. Comme J-P <span class="hilite">Sartre</span> le fait observer lui-même, le rêve exclut la liberté parce que, dans l'imaginaire, à...</li>
64
+ <li class='philologic_occurence'>
65
+ <a class='philologic_cite' href='./1768/4/0/0'><span class='philologic_property' title='author'>Mounier E.</span>, <span class='philologic_property' title='title'>Traite du Caractere</span> <span class='philologic_property' title='date'>(1946)</span></a>
66
+ ...e Lautréamont à Éluard, et tels personnages de Jean-Paul <span class="hilite">Sartre</span>. L'opposition haut-bas exprime le mouvement ascendant et la chute de l'...</li>
67
+ <li class='philologic_occurence'>
68
+ <a class='philologic_cite' href='./1768/5/0/0'><span class='philologic_property' title='author'>Mounier E.</span>, <span class='philologic_property' title='title'>Traite du Caractere</span> <span class='philologic_property' title='date'>(1946)</span></a>
69
+ ...parmi les choses, homme parmi les hommes." Ces lignes de J. - P. <span class="hilite">Sartre</span> sont de 1939. Quelle distance parcourue depuis le lyrisme de la sincérité avec soi...</li>
70
+ <li class='philologic_occurence'>
71
+ <a class='philologic_cite' href='./1768/5/0/0'><span class='philologic_property' title='author'>Mounier E.</span>, <span class='philologic_property' title='title'>Traite du Caractere</span> <span class='philologic_property' title='date'>(1946)</span></a>
72
+ ...au plus des "apparitions latérales irréelles, corrélatives d'une conscience impersonnelle " (<span class="hilite">Sartre</span>). Le sommeil se défait au moment même où, par l'évocation d'une perception réel...</li>
73
+ <li class='philologic_occurence'>
74
+ <a class='philologic_cite' href='./1770/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
75
+ ... L'Existent. Est Un Humanisme <span class="hilite">Sartre</span> J.-P. ARTFL Project, University of Chicago...</li>
76
+ <li class='philologic_occurence'>
77
+ <a class='philologic_cite' href='./1770/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
78
+ ... L'existentialisme est un humanisme <span class="hilite">Sartre</span> J.-P. Sartre, Jean Paul, 1905-1980. ...</li>
79
+ <li class='philologic_occurence'>
80
+ <a class='philologic_cite' href='./1770/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
81
+ ... Paul, $d 1905- {245} L'éxistentialisme est un humanisme $h [computer file] / $c Jean-Paul <span class="hilite">Sartre</span>. {534} $p Electronic text of: $a Sartre, Jean Paul, 1905- $t L'éxistentialisme est u...</li>
82
+ <li class='philologic_occurence'>
83
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
84
+ ... l'angoisse et le désespoir ne se produisent pas couramment. M. <span class="hilite">Sartre</span>: je ne veux évidemment pas dire que, quand je choisis entre un millefeuille et un écla...</li>
85
+ <li class='philologic_occurence'>
86
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
87
+ ... et il me semble que votre point de vue s'y était un peu affaibli. M. <span class="hilite">Sartre</span>: en toute sincérité, il est possible que dans action mes thèses aient été u...</li>
88
+ <li class='philologic_occurence'>
89
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
90
+ ...rendront pas. M. <span class="hilite">Sartre</span>: vous semblez concevoir le rôle de la philosophie dans la cité d'une manière qui se t...</li>
91
+ <li class='philologic_occurence'>
92
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
93
+ ...choix original de Marx est d'abord un choix révolutionnaire. M. <span class="hilite">Sartre</span>: bien malin celui qui pourra dire s'il s'est choisi d'abord révolutionnaire et ensuite ...</li>
94
+ <li class='philologic_occurence'>
95
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
96
+ ... de Marx. M. <span class="hilite">Sartre</span>: il s'agit d'une morale de la liberté. S'il n'y a pas de contradiction entre cette ...</li>
97
+ <li class='philologic_occurence'>
98
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
99
+ ...Au nom de la liberté? Mais, si c'est une philosophie orientée dans la sens indiqué par <span class="hilite">Sartre</span>, elle doit donner des directives, elle doit, en 1945, dire s'il faut adhérer à l'u. ...</li>
100
+ <li class='philologic_occurence'>
101
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
102
+ ...le doit dire s'il est pour le parti ouvrier ou le parti du petit bourgeois. M. <span class="hilite">Sartre</span>: il est assez difficile de vous répondre complètement, parce que vous avez dit beaucou...</li>
103
+ <li class='philologic_occurence'>
104
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
105
+ ...ferait-on pour analyser rétrospectivement? On n'y arriverait pas. M. <span class="hilite">Sartre</span>: jamais nous n'avons pensé qu'il n'y avait pas à analyser des conditions humaines ni d...</li>
106
+ <li class='philologic_occurence'>
107
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
108
+ ...ations de type causal, y compris la causalité des types statistiques. M. <span class="hilite">Sartre</span>: vous me parlez de causalité d'ordre statistique. Cela ne veut rien dire. Voule...</li>
109
+ <li class='philologic_occurence'>
110
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
111
+ ...pendant, vous admettrez que ces sciences utilisent la notion de causalité? M. <span class="hilite">Sartre</span>: absolument pas. Les sciences ...</li>
112
+ <li class='philologic_occurence'>
113
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
114
+ ...onguement développé, celui du jeune homme qui est venu vous trouver. M. <span class="hilite">Sartre</span>: n'était-il pas sur le plan de la liberté? M. Naville: ...</li>
115
+ <li class='philologic_occurence'>
116
+ <a class='philologic_cite' href='./1770/1/1/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>L'Existent. Est Un Humanisme</span> <span class='philologic_property' title='date'>(1946)</span></a>
117
+ ..., mais très certainement, je l'aurais engagé à faire quelque chose. M. <span class="hilite">Sartre</span>: s'il vient vous demander conseil, c'est qu'il a déjà choisi la réponse. Pratique...</li>
118
+ <li class='philologic_occurence'>
119
+ <a class='philologic_cite' href='./1786/0/0/0/0/0/0/4/174'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mains Sales</span> <span class='philologic_property' title='date'>(1948)</span></a>
120
+ ... Les Mains Sales <span class="hilite">Sartre</span> J.-P. ARTFL Project, University of Chicago...</li>
121
+ <li class='philologic_occurence'>
122
+ <a class='philologic_cite' href='./1786/0/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mains Sales</span> <span class='philologic_property' title='date'>(1948)</span></a>
123
+ ...Les mains sales: pièce en sept tableaux <span class="hilite">Sartre</span> J.-P. Sartre, Jean Paul, 1905-1980. ...</li>
124
+ <li class='philologic_occurence'>
125
+ <a class='philologic_cite' href='./1786/0/0/0'><span class='philologic_property' title='author'>Sartre J.-P.</span>, <span class='philologic_property' title='title'>Les Mains Sales</span> <span class='philologic_property' title='date'>(1948)</span></a>
126
+ ... 1905- {245} Les mains sales $h [computer file] : $b pièce en sept tableaux / $c Jean-Paul <span class="hilite">Sartre</span>. {534} $p Electronic text of: $a Sartre, Jean Paul, 1905- $t Les mains sales. $c Pari...</li>
127
+ <li class='philologic_occurence'>
128
+ <a class='philologic_cite' href='./1792/4/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
129
+ ...ssitôt me mettre au travail. J'apprends avec un vif plaisir qu'il est intimement lié avec <span class="hilite">Sartre</span>. Près d'eux, par sympathie violente, je sens rajeunir mes espoirs. ...</li>
130
+ <li class='philologic_occurence'>
131
+ <a class='philologic_cite' href='./1792/6/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
132
+ ...de bello gallico de César. Après le remarquable mur de <span class="hilite">Sartre</span> (dont, du reste, je me souvenais fort bien et que l'on ne saurait oublier), je relis ...</li>
133
+ <li class='philologic_occurence'>
134
+ <a class='philologic_cite' href='./1792/8/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
135
+ ... de moi, qui passa d'abord inaperçue, et que, devant le raffut que l'on fait aujourd'hui (dont <span class="hilite">Sartre</span> n'est pas uniquement responsable) à propos de certaines déclarations et manifestations...</li>
136
+ <li class='philologic_occurence'>
137
+ <a class='philologic_cite' href='./1792/8/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
138
+ ...n'ai point trouvé de nouveaux maîtres, et je reste pantelant. L'effrayante absurdité des <span class="hilite">Sartre</span> et des Camus n'a rien résolu et n'ouvre que des horizons de suicide. ...</li>
139
+ <li class='philologic_occurence'>
140
+ <a class='philologic_cite' href='./1792/9/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
141
+ ... Passeur. Trop tôt pour en parler... je tiens la putain respectueuse de <span class="hilite">Sartre</span> pour une manière de chef-d'oeuvre. Je n'aimais pas du tout ses deux derniers longs ...</li>
142
+ <li class='philologic_occurence'>
143
+ <a class='philologic_cite' href='./1792/9/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
144
+ ...Je ne reconnais aucun des propos qu'il me prête, sur ce dernier, sur les existentialistes et <span class="hilite">Sartre</span>." FEUILLETS D'AUTOMNE Neuch..</li>
145
+ <li class='philologic_occurence'>
146
+ <a class='philologic_cite' href='./1792/11/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
147
+ ...viens d'en relire six d'affilée. Et les réflexions sur la question juive, de <span class="hilite">Sartre</span>. Somme toute un peu déçu, après le (peut-être trop) grand bien que m'en avait di...</li>
148
+ <li class='philologic_occurence'>
149
+ <a class='philologic_cite' href='./1792/11/0/0'><span class='philologic_property' title='author'>Gide A.</span>, <span class='philologic_property' title='title'>Journal 1939-1949</span> <span class='philologic_property' title='date'>(1949)</span></a>
150
+ ...er les nationalistes) et pour le plus grand honneur de notre pays. J'en reviens au livre de <span class="hilite">Sartre</span>. Si justes que me paraissent certaines de ses plus importantes assertions (par exemp...</li>
151
+ </ol><div class='more'><a href='./?query=sartre&q_start=1&q_end=50'>1-50</a> <a href='./?query=sartre&q_start=51&q_end=100'>51-100</a> <a href='./?query=sartre&q_start=101&q_end=150'>101-150</a> <a href='./?query=sartre&q_start=151&q_end=151'>151-151</a> </div></div></body></html>
@@ -18,6 +18,8 @@ class TestPhilologicClient < Test::Unit::TestCase
18
18
  @endpoint = @data_dir
19
19
  @root_path = 'root_file.html'
20
20
  @root_file = File.join( @data_dir, @root_path )
21
+ @query_path = 'query_sartre.html'
22
+ @query_file = File.join( @data_dir, @query_path )
21
23
  end
22
24
 
23
25
 
@@ -33,6 +35,21 @@ class TestPhilologicClient < Test::Unit::TestCase
33
35
  assert_kind_of Philologic::Client, Philologic::Client.new
34
36
  end
35
37
 
38
+ def test_initialization_with_endpoint
39
+ blockable = false
40
+ client = Philologic::Client.new(@endpoint) do |client|
41
+ assert_kind_of Philologic::Client, client
42
+ blockable = true
43
+ assert_not_nil client.endpoint
44
+ assert_equal @endpoint, client.endpoint
45
+ end
46
+ assert blockable, 'works as block'
47
+ assert_kind_of Philologic::Client, client
48
+ assert_kind_of Philologic::Client, Philologic::Client.new
49
+ assert_not_nil client.endpoint
50
+ assert_equal @endpoint, client.endpoint
51
+ end
52
+
36
53
  def test_endpoint_accessor
37
54
  Philologic::Client.new do |client|
38
55
  assert_nil client.endpoint, 'defaults to nil'
@@ -128,5 +145,72 @@ class TestPhilologicClient < Test::Unit::TestCase
128
145
  end
129
146
  end
130
147
 
148
+ def test_nil_search
149
+ Philologic::Client.new(@endpoint) do |client|
150
+ assert_raise(RuntimeError, 'no query specified') { client.search(nil) }
151
+ end
152
+ end
153
+
154
+ def test_underscore_query
155
+ Philologic::Client.new(@endpoint) do |client|
156
+ doc = client.send( :_parse, Nokogiri::HTML( open(@query_file) ) )
157
+ q = 'sartre'
158
+ qs = "?query=#{q}"
159
+ client.stubs(:_get).with(qs).returns(doc)
160
+ assert_equal doc, client.send(:_query, q)
161
+ end
162
+ end
163
+
164
+ def test_underscore_build_query_with_nil_query
165
+ Philologic::Client.new(@endpoint) do |client|
166
+ assert_raise(RuntimeError, 'no query specified') { client.send(:_build_query, nil) }
167
+ end
168
+ end
169
+
170
+ def test_underscore_build_query
171
+ Philologic::Client.new(@endpoint) do |client|
172
+ q = 'sartre'
173
+ qs = "?query=#{q}"
174
+ assert_equal qs, client.send(:_build_query, q)
175
+ end
176
+ end
177
+
178
+ def test_search
179
+ Philologic::Client.new(@endpoint) do |client|
180
+ doc = client.send( :_parse, Nokogiri::HTML( open(@query_file) ) )
181
+ q = 'sartre'
182
+ qs = "?query=#{q}"
183
+ client.stubs(:_get).with(qs).returns(doc)
184
+
185
+ results = client.search(q)
186
+
187
+ assert_not_nil results
188
+ assert_kind_of Array, results
189
+ assert_equal 50, results.size
190
+ results.each do |result|
191
+ assert_kind_of Philologic::Link, result
192
+ assert_equal 'philologic_cite', result['class']
193
+ assert_not_nil result['href']
194
+ assert_nil result['some random attribute']
195
+ assert_not_nil result['author']
196
+ assert_nil result['filename']
197
+ assert_not_nil result['title']
198
+ assert_raise(NoMethodError) { result.text }
199
+ end
200
+
201
+ assert_equal './54/1/0/0', results.first['href']
202
+ assert_equal 'Peiresc N. de', results.first['author']
203
+ assert_equal 'Lettres T. 6 1602-1637', results.first['title']
204
+ assert_nil results.first['filename']
205
+ assert_raise(NoMethodError) { results.first.text }
206
+
207
+ assert_equal './1792/11/0/0', results.last['href']
208
+ assert_equal 'Gide A.', results.last['author']
209
+ assert_equal 'Journal 1939-1949', results.last['title']
210
+ assert_nil results.last['filename']
211
+ assert_raise(NoMethodError) { results.last.text }
212
+
213
+ end
214
+ end
131
215
  end
132
216
 
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.3
4
+ version: 0.0.4
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: 2011-12-29 00:00:00.000000000Z
12
+ date: 2011-12-30 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70261266335820 !ruby/object:Gem::Requirement
16
+ requirement: &70149535209220 !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: *70261266335820
24
+ version_requirements: *70149535209220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mocha
27
- requirement: &70261266335380 !ruby/object:Gem::Requirement
27
+ requirement: &70149535208780 !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: *70261266335380
35
+ version_requirements: *70149535208780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc-readme
38
- requirement: &70261266334960 !ruby/object:Gem::Requirement
38
+ requirement: &70149535208360 !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: *70261266334960
46
+ version_requirements: *70149535208360
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70261266334540 !ruby/object:Gem::Requirement
49
+ requirement: &70149535207940 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70261266334540
57
+ version_requirements: *70149535207940
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &70261266334120 !ruby/object:Gem::Requirement
60
+ requirement: &70149535207520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70261266334120
68
+ version_requirements: *70149535207520
69
69
  description: Ruby client for interacting with the Philologic API.
70
70
  email:
71
71
  - blair.christensen@gmail.com
@@ -82,6 +82,7 @@ files:
82
82
  - lib/philologic-client/version.rb
83
83
  - philologic-client.gemspec
84
84
  - test/data/doc_file.html
85
+ - test/data/query_sartre.html
85
86
  - test/data/root_file.html
86
87
  - test/test_philologic_client.rb
87
88
  homepage: https://github.com/blairc/philologic-client/
@@ -98,7 +99,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
99
  version: '0'
99
100
  segments:
100
101
  - 0
101
- hash: -1767685141629153618
102
+ hash: -2190975545106679734
102
103
  required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  none: false
104
105
  requirements:
@@ -107,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
108
  version: '0'
108
109
  segments:
109
110
  - 0
110
- hash: -1767685141629153618
111
+ hash: -2190975545106679734
111
112
  requirements: []
112
113
  rubyforge_project: philologic-client
113
114
  rubygems_version: 1.8.7
@@ -116,5 +117,6 @@ specification_version: 3
116
117
  summary: Ruby client for interacting with the Philologic API.
117
118
  test_files:
118
119
  - test/data/doc_file.html
120
+ - test/data/query_sartre.html
119
121
  - test/data/root_file.html
120
122
  - test/test_philologic_client.rb