Просмотр исходного кода

Pass response object to Scraper#parse method

Thibaut Courouble 8 лет назад
Родитель
Сommit
8ddb812035

+ 3 - 3
lib/docs/core/scraper.rb

@@ -172,7 +172,7 @@ module Docs
 
     def process_response(response)
       data = {}
-      html, title = parse(response.body)
+      html, title = parse(response)
       context = pipeline_context(response)
       context[:html_title] = title
       pipeline.call(html, context, data)
@@ -183,8 +183,8 @@ module Docs
       options.merge url: response.url
     end
 
-    def parse(string)
-      parser = Parser.new(string)
+    def parse(response)
+      parser = Parser.new(response.body)
       [parser.html, parser.title]
     end
 

+ 9 - 9
lib/docs/scrapers/angular.rb

@@ -58,15 +58,15 @@ module Docs
 
     private
 
-    def parse(string)
-      string.gsub! '<code-example', '<pre'
-      string.gsub! '</code-example', '</pre'
-      string.gsub! '<code-pane', '<pre'
-      string.gsub! '</code-pane', '</pre'
-      string.gsub! '<live-example></live-example>', 'live example'
-      string.gsub! '<live-example', '<span'
-      string.gsub! '</live-example', '</span'
-      super string
+    def parse(response)
+      response.body.gsub! '<code-example', '<pre'
+      response.body.gsub! '</code-example', '</pre'
+      response.body.gsub! '<code-pane', '<pre'
+      response.body.gsub! '</code-pane', '</pre'
+      response.body.gsub! '<live-example></live-example>', 'live example'
+      response.body.gsub! '<live-example', '<span'
+      response.body.gsub! '</live-example', '</span'
+      super
     end
   end
 end

+ 2 - 2
lib/docs/scrapers/cakephp.rb

@@ -59,8 +59,8 @@ module Docs
 
     private
 
-    def parse(string)
-      string.gsub! '<h5 class="method-name">', '<h3 class="method-name">'
+    def parse(response)
+      response.body.gsub! '<h5 class="method-name">', '<h3 class="method-name">'
       super
     end
   end

+ 3 - 2
lib/docs/scrapers/go.rb

@@ -21,8 +21,9 @@ module Docs
 
     private
 
-    def parse(html) # Hook here because Nokogori removes whitespace from textareas
-      super html.gsub %r{<textarea\ class="code"[^>]*>([\W\w]+?)</textarea>}, '<pre class="code">\1</pre>'
+    def parse(response) # Hook here because Nokogori removes whitespace from textareas
+      response.body.gsub! %r{<textarea\ class="code"[^>]*>([\W\w]+?)</textarea>}, '<pre class="code">\1</pre>'
+      super
     end
   end
 end

+ 2 - 2
lib/docs/scrapers/sqlite.rb

@@ -44,8 +44,8 @@ module Docs
 
     private
 
-    def parse(html)
-      html.gsub! %r{(<h2[^>]*>[^<]+)</h1>}, '\1</h2>'
+    def parse(response)
+      response.body.gsub! %r{(<h2[^>]*>[^<]+)</h1>}, '\1</h2>'
       super
     end
   end