tool/gen.rb in tgbot-0.2.7 vs tool/gen.rb in tgbot-0.3.2
- old
+ new
@@ -1,32 +1,34 @@
-require 'http'
-require 'nokogiri'
-
-raw = HTTP.via('127.0.0.1', 1080).get('https://core.telegram.org/bots/api').to_s
-nodes = Nokogiri::HTML(raw).at('#dev_page_content').children
-ret = [{ name: 'Telegram Bot API', children: [] }]
-uplevels = [2]
-nodes.each do |node|
- case node.name
- when 'h3', 'h4'
- n = node.name[/\d/].to_i
- while uplevels[-1] >= n
- ret.pop
- uplevels.pop
- end
- ret[-1][:children] << (x = { name: node.content, children: [] })
- ret << x
- uplevels << n
- when 'h6', 'p', 'blockquote', 'pre'
- (ret[-1]['desc'] ||= []) << { name: node.name, content: node.content.strip }
- when 'ul', 'ol'
- (ret[-1]['desc'] ||= []) << { name: node.name, content: node.css('li').map(&:content).map(&:strip) }
- when 'table'
- keys = node.css('th').map(&:content)
- ret[-1]['table'] = node.css('tbody > tr').map do |tr|
- keys.zip(tr.css('td').map(&:content)).to_h
- end
- end
-end
-ret = JSON.parse JSON.generate ret[0]
-require 'psych'
-open(File.expand_path('../lib/api.yaml', __dir__), 'wb') { |f| Psych.dump ret, f, line_width: 1<<30 }
+require 'net/http'
+require 'nokogiri'
+
+uri = URI('https://core.telegram.org/bots/api')
+raw = Net::HTTP.get(uri)
+nodes = Nokogiri::HTML(raw).at('#dev_page_content').children
+ret = [{ name: 'Telegram Bot API', children: [] }]
+uplevels = [2]
+nodes.each do |node|
+ case node.name
+ when 'h3', 'h4'
+ n = node.name[/\d/].to_i
+ while uplevels[-1] >= n
+ ret.pop
+ uplevels.pop
+ end
+ ret[-1][:children] << (x = { name: node.content, children: [] })
+ ret << x
+ uplevels << n
+ when 'h6', 'p', 'blockquote', 'pre'
+ (ret[-1]['desc'] ||= []) << { name: node.name, content: node.content.strip }
+ when 'ul', 'ol'
+ (ret[-1]['desc'] ||= []) << { name: node.name, content: node.css('li').map(&:content).map(&:strip) }
+ when 'table'
+ keys = node.css('th').map(&:content)
+ ret[-1]['table'] = node.css('tbody > tr').map do |tr|
+ keys.zip(tr.css('td').map(&:content)).to_h
+ end
+ end
+end
+require 'json'
+ret = JSON.parse JSON.generate ret[0]
+require 'psych'
+open(File.expand_path('../lib/api.yaml', __dir__), 'wb') { |f| Psych.dump ret, f, line_width: 1<<30 }