私は宝石に取り組んでいます。これがそのホームページです: https://github.com/scaryguy/vakit
ソース コードを確認すると、外部の HTML ページを解析してデータをフィルター処理していることがわかります。
問題は、1 つの要求で必要なすべてのデータをフェッチしても、呼び出すたびに、Vakit.sabah
またはVakit.oglen
新しい要求が行われることです。
require "vakit/version"
require 'vakit/connect'
require 'Nokogiri'
require 'open-uri'
module Vakit
def self.today
Vakit::Connect.shaber
end
def self.imsak
Vakit::Connect.shaber[:imsak]
end
def self.sabah
Vakit::Connect.shaber[:sabah]
end
def self.oglen
Vakit::Connect.shaber[:oglen]
end
def self.ikindi
Vakit::Connect.shaber[:ikindi]
end
def self.aksam
Vakit::Connect.shaber[:aksam]
end
def self.yatsi
Vakit::Connect.shaber[:yatsi]
end
end
効率の良い方法とは思えません。
新しいリクエストなしでハッシュの属性にアクセスできるはずですよね?
module Vakit
class Connect
def initialize(opt={})
@path = opt[:path]
end
def self.shaber
doc = Nokogiri::HTML(open('http://www.samanyoluhaber.com/'))
x = doc.css('#hnmzT')
times = []
x.each do |vakit|
data = vakit.children.first.children.last.content
data_add = data.slice(0..data.length-2)
times.push(data_add)
end
times
vakit = {
imsak: times[0],
sabah: times[1],
oglen: times[2],
ikindi: times[3],
aksam: times[4],
yatsi: times[5]
}
end
end
end
私はいくつかの啓蒙が必要です。