Class: DuodealerApp::ScripttagsManager

Inherits:
Object
  • Object
show all
Defined in:
lib/duodealer_app/managers/scripttags_manager.rb

Defined Under Namespace

Classes: CreationFailed

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scripttags, account_domain) ⇒ ScripttagsManager

Returns a new instance of ScripttagsManager.



27
28
29
30
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 27

def initialize(scripttags, )
  @required_scripttags = scripttags
  @account_domain = 
end

Instance Attribute Details

#account_domainObject (readonly)

Returns the value of attribute account_domain.



25
26
27
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 25

def 
  @account_domain
end

#required_scripttagsObject (readonly)

Returns the value of attribute required_scripttags.



25
26
27
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 25

def required_scripttags
  @required_scripttags
end

Class Method Details

.build_src(scripttags, domain) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 16

def self.build_src(scripttags, domain)
  scripttags.map do |tag|
    next tag unless tag[:src].respond_to?(:call)
    tag = tag.dup
    tag[:src] = tag[:src].call(domain)
    tag
  end
end

.queue(account_domain, account_token, scripttags) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 7

def self.queue(, , scripttags)
  DuodealerApp::ScripttagsManagerJob.perform_later(
    account_domain: ,
    account_token: ,
    # Procs cannot be serialized so we interpolate now, if necessary
    scripttags: build_src(scripttags, )
  )
end

Instance Method Details

#create_scripttagsObject



37
38
39
40
41
42
43
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 37

def create_scripttags
  return if required_scripttags.blank?

  expanded_scripttags.each do |scripttag|
    create_scripttag(scripttag) unless scripttag_exists?(scripttag[:src])
  end
end

#destroy_scripttagsObject



45
46
47
48
49
50
51
52
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 45

def destroy_scripttags
  scripttags = expanded_scripttags
  DuodealerAPI::ScriptTag.all.each do |tag|
    DuodealerAPI::ScriptTag.delete(tag.id) if is_required_scripttag?(scripttags, tag)
  end

  @current_scripttags = nil
end

#recreate_scripttags!Object



32
33
34
35
# File 'lib/duodealer_app/managers/scripttags_manager.rb', line 32

def recreate_scripttags!
  destroy_scripttags
  create_scripttags
end