Class: PageObserver

Inherits:
Mongoid::Observer
  • Object
show all
Defined in:
app/observers/page_observer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#recordObject

Returns the value of attribute record.



2
3
4
# File 'app/observers/page_observer.rb', line 2

def record
  @record
end

Instance Method Details

#around_save(record) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/observers/page_observer.rb', line 4

def around_save(record)
  self.record = record

  if attachment_assets_changed?
    attachment_assets = record.attachment_assets
    to_update = record.assets + attachment_assets
    record.assets = attachment_assets
  end

  yield

  if page_changed? || did_attachment_assets_change?
    (to_update || record.assets).each do |asset|
      asset.reload
      asset.save
    end
  end

  true # Not returning true causes problems with Mongoid 2.5.1
end

#attachment_assets_changed?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/observers/page_observer.rb', line 25

def attachment_assets_changed?
  @did_attachment_assets_change = record.attachment_asset_ids != record.asset_ids
end

#did_attachment_assets_change?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'app/observers/page_observer.rb', line 29

def did_attachment_assets_change?
  @did_attachment_assets_change
end

#page_changed?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'app/observers/page_observer.rb', line 33

def page_changed?
  record.path_changed?
end