Class: Embedding

Inherits:
OpenStruct
  • Object
show all
Includes:
HasErrors
Defined in:
app/models/embedding.rb

Instance Attribute Summary

Attributes included from HasErrors

#conflict, #errors, #forbidden, #not_found

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasErrors

#add_error, #add_errors_from, #rollback_from_errors!, #rollback_with!, #validate_child

Class Method Details

.findObject



37
38
39
40
41
# File 'app/models/embedding.rb', line 37

def self.find
  embedding_args = { id: "default" }
  Embedding.settings.each { |s| embedding_args[s] = SiteSetting.get(s) }
  Embedding.new(embedding_args)
end

.settingsObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/embedding.rb', line 8

def self.settings
  %i[
    embed_by_username
    embed_post_limit
    embed_title_scrubber
    embed_truncate
    embed_unlisted
    allowed_embed_selectors
    blocked_embed_selectors
    allowed_embed_classnames
  ]
end

Instance Method Details

#base_urlObject



21
22
23
# File 'app/models/embedding.rb', line 21

def base_url
  Discourse.base_url
end

#embeddable_hostsObject



33
34
35
# File 'app/models/embedding.rb', line 33

def embeddable_hosts
  EmbeddableHost.all.order(:host)
end

#saveObject



25
26
27
28
29
30
31
# File 'app/models/embedding.rb', line 25

def save
  Embedding.settings.each { |s| SiteSetting.set(s, public_send(s)) }
  true
rescue Discourse::InvalidParameters => p
  errors.add :base, p.to_s
  false
end