Module: Onebox

Defined in:
lib/onebox.rb,
lib/onebox/view.rb,
lib/onebox/movie.rb,
lib/onebox/engine.rb,
lib/onebox/layout.rb,
lib/onebox/oembed.rb,
lib/onebox/helpers.rb,
lib/onebox/json_ld.rb,
lib/onebox/matcher.rb,
lib/onebox/preview.rb,
lib/onebox/normalizer.rb,
lib/onebox/open_graph.rb,
lib/onebox/engine/html.rb,
lib/onebox/engine/json.rb,
lib/onebox/status_check.rb,
lib/onebox/domain_checker.rb,
lib/onebox/layout_support.rb,
lib/onebox/sanitize_config.rb,
lib/onebox/file_type_finder.rb,
lib/onebox/template_support.rb,
lib/onebox/engine/pdf_onebox.rb,
lib/onebox/engine/coub_onebox.rb,
lib/onebox/engine/xkcd_onebox.rb,
lib/onebox/mixins/github_body.rb,
lib/onebox/engine/audio_onebox.rb,
lib/onebox/engine/image_onebox.rb,
lib/onebox/engine/imgur_onebox.rb,
lib/onebox/engine/video_onebox.rb,
lib/onebox/engine/vimeo_onebox.rb,
lib/onebox/engine/youku_onebox.rb,
lib/onebox/engine/amazon_onebox.rb,
lib/onebox/engine/flickr_onebox.rb,
lib/onebox/engine/gfycat_onebox.rb,
lib/onebox/engine/motoko_onebox.rb,
lib/onebox/engine/pubmed_onebox.rb,
lib/onebox/engine/replit_onebox.rb,
lib/onebox/engine/slides_onebox.rb,
lib/onebox/engine/tiktok_onebox.rb,
lib/onebox/engine/trello_onebox.rb,
lib/onebox/engine/wistia_onebox.rb,
lib/onebox/mixins/twitch_onebox.rb,
lib/onebox/engine/kaltura_onebox.rb,
lib/onebox/engine/standard_embed.rb,
lib/onebox/engine/youtube_onebox.rb,
lib/onebox/engine/mixcloud_onebox.rb,
lib/onebox/engine/opengraph_image.rb,
lib/onebox/engine/pastebin_onebox.rb,
lib/onebox/engine/typeform_onebox.rb,
lib/onebox/mixins/git_blob_onebox.rb,
lib/onebox/engine/asciinema_onebox.rb,
lib/onebox/engine/audio_com_onebox.rb,
lib/onebox/engine/audioboom_onebox.rb,
lib/onebox/engine/band_camp_onebox.rb,
lib/onebox/engine/cloud_app_onebox.rb,
lib/onebox/engine/instagram_onebox.rb,
lib/onebox/engine/wikimedia_onebox.rb,
lib/onebox/engine/wikipedia_onebox.rb,
lib/onebox/engine/hackernews_onebox.rb,
lib/onebox/engine/simplecast_onebox.rb,
lib/onebox/engine/sketch_fab_onebox.rb,
lib/onebox/engine/github_blob_onebox.rb,
lib/onebox/engine/github_gist_onebox.rb,
lib/onebox/engine/gitlab_blob_onebox.rb,
lib/onebox/engine/google_docs_onebox.rb,
lib/onebox/engine/google_maps_onebox.rb,
lib/onebox/engine/sound_cloud_onebox.rb,
lib/onebox/engine/steam_store_onebox.rb,
lib/onebox/engine/github_issue_onebox.rb,
lib/onebox/engine/google_drive_onebox.rb,
lib/onebox/engine/reddit_media_onebox.rb,
lib/onebox/engine/github_commit_onebox.rb,
lib/onebox/engine/github_folder_onebox.rb,
lib/onebox/engine/google_photos_onebox.rb,
lib/onebox/engine/animated_image_onebox.rb,
lib/onebox/engine/facebook_media_onebox.rb,
lib/onebox/engine/github_actions_onebox.rb,
lib/onebox/engine/stack_exchange_onebox.rb,
lib/onebox/engine/threads_status_onebox.rb,
lib/onebox/engine/twitter_status_onebox.rb,
lib/onebox/engine/discourse_topic_onebox.rb,
lib/onebox/engine/five_hundred_px_onebox.rb,
lib/onebox/engine/google_calendar_onebox.rb,
lib/onebox/engine/google_play_app_onebox.rb,
lib/onebox/engine/flickr_shortened_onebox.rb,
lib/onebox/engine/allowlisted_generic_onebox.rb,
lib/onebox/engine/github_pull_request_onebox.rb

Defined Under Namespace

Modules: Engine, FileTypeFinder, Helpers, LayoutSupport, Mixins, SanitizeConfig, TemplateSupport Classes: DomainChecker, JsonLd, Layout, Matcher, Movie, Normalizer, Oembed, OpenGraph, Preview, StatusCheck, View

Constant Summary collapse

DEFAULTS =
{
  connect_timeout: 5,
  timeout: 10,
  max_download_kb: (10 * 1024), # 10MB
  load_paths: [File.join(Rails.root, "lib/onebox/templates")],
  allowed_ports: [80, 443],
  allowed_schemes: %w[http https],
  sanitize_config: SanitizeConfig::ONEBOX,
  redirect_limit: 5,
}
@@options =
DEFAULTS

Class Method Summary collapse

Class Method Details

.check(url, options = Onebox.options) ⇒ Object



33
34
35
# File 'lib/onebox.rb', line 33

def self.check(url, options = Onebox.options)
  StatusCheck.new(url, options)
end

.has_matcher?(url) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/onebox.rb', line 41

def self.has_matcher?(url)
  !!Matcher.new(url).oneboxed
end

.optionsObject



37
38
39
# File 'lib/onebox.rb', line 37

def self.options
  OpenStruct.new(@@options)
end

.options=(options) ⇒ Object



45
46
47
# File 'lib/onebox.rb', line 45

def self.options=(options)
  @@options = DEFAULTS.merge(options)
end

.preview(url, options = Onebox.options) ⇒ Object



29
30
31
# File 'lib/onebox.rb', line 29

def self.preview(url, options = Onebox.options)
  Preview.new(url, options)
end