Bağlantının bozulmasını önlemek için , Chris Wanstrath'ın user83510 tarafından bağlanan blog yazısı aşağıda yeniden yayınlanmıştır (onun izni ile). Yine de hiçbir şey bir orijinalin yerini alamaz, bu yüzden çalışmaya devam ettiği sürece onun bağlantısını kullanın.
→ singletons şarkı 18 Kasım 2008 Anlamadığım şeyler var. Örneğin David Bowie. Veya Güney Yarımküre. Ama hiçbir şey aklımı Ruby'nin Singleton'u kadar şaşırtamaz. Çünkü gerçekten, tamamen gereksiz.
İşte kodunuzla yapmanızı istedikleri şey:
require 'net/http'
# first you setup your singleton
class Cheat
include Singleton
def initialize
@host = 'http://cheat.errtheblog.com/'
@http = Net::HTTP.start(URI.parse(@host).host)
end
def sheet(name)
@http.get("/s/#{name}").body
end
end
# then you use it
Cheat.instance.sheet 'migrations'
Cheat.instance.sheet 'yahoo_ceo'
Ama bu çılgınlık. Güçle savaş.
require 'net/http'
# here's how we roll
module Cheat
extend self
def host
@host ||= 'http://cheat.errtheblog.com/'
end
def http
@http ||= Net::HTTP.start(URI.parse(host).host)
end
def sheet(name)
http.get("/s/#{name}").body
end
end
# then you use it
Cheat.sheet 'migrations'
Cheat.sheet 'singletons'
Herhangi bir neden olmasın? API daha özlüdür, kodun test edilmesi, alay edilmesi ve saplanması daha kolaydır ve ihtiyaç duyulduğunda uygun bir sınıfa dönüştürmek hala son derece basittir.
((telif hakkı on chris wanstrath olmalıdır))