mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-06-12 09:03:58 +08:00
It returns a Onebox::StatusCheck instance that exposes the methods human_status and ok?, wherein human_status returns symbols like :success and ok? returns true if and only if the HTTP status code lies between 200 and 299
50 lines
1.1 KiB
Ruby
Vendored
50 lines
1.1 KiB
Ruby
Vendored
require "openssl"
|
|
require "open-uri"
|
|
require "multi_json"
|
|
require "nokogiri"
|
|
require "mustache"
|
|
require "ostruct"
|
|
require "moneta"
|
|
require "cgi"
|
|
require "net/http"
|
|
require "digest"
|
|
|
|
module Onebox
|
|
DEFAULTS = {
|
|
cache: Moneta.new(:Memory, expires: true, serializer: :json),
|
|
connect_timeout: 5,
|
|
timeout: 10,
|
|
load_paths: [File.join(Gem::Specification.find_by_name("onebox").gem_dir, "templates")]
|
|
}
|
|
|
|
@@options = DEFAULTS
|
|
|
|
def self.preview(url, options = Onebox.options)
|
|
Preview.new(url, options)
|
|
end
|
|
|
|
def self.check(url, options = Onebox.options)
|
|
StatusCheck.new(url, options)
|
|
end
|
|
|
|
def self.options
|
|
OpenStruct.new(@@options)
|
|
end
|
|
|
|
def self.has_matcher?(url)
|
|
result = Matcher.new(url).oneboxed
|
|
!!result
|
|
end
|
|
|
|
def self.options=(options)
|
|
@@options = DEFAULTS.merge(options)
|
|
end
|
|
end
|
|
|
|
require_relative "onebox/version"
|
|
require_relative "onebox/preview"
|
|
require_relative "onebox/status_check"
|
|
require_relative "onebox/matcher"
|
|
require_relative "onebox/engine"
|
|
require_relative "onebox/layout"
|
|
require_relative "onebox/view"
|