Class: Tori::Rails::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/tori/rails/callback.rb

Instance Method Summary collapse

Constructor Details

#initializeCallback

Returns a new instance of Callback.



4
5
6
7
8
9
10
11
12
# File 'lib/tori/rails/callback.rb', line 4

def initialize
  @callbacks = {
    store_key:     [],
    before_upload: [],
    upload:        [],
    after_upload:  [],
    destroy:       []
  }
end

Instance Method Details

#after_destroy(record) ⇒ Object



43
44
45
46
47
# File 'lib/tori/rails/callback.rb', line 43

def after_destroy(record)
  @callbacks[:destroy].each do |callback|
    destroy_image(record, name: callback[:name])
  end
end

#after_save(record) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tori/rails/callback.rb', line 28

def after_save(record)
  @callbacks[:before_upload].each do |callback|
    record.send(callback[:callback], name: callback[:name])
  end
  @callbacks[:upload].each do |callback|
    upload_image(record, name: callback[:name])
  end
  @callbacks[:after_upload].each do |callback|
    record.send(callback[:callback], name: callback[:name])
  end
  @callbacks[:store_key].each do |callback|
    store_key(record, name: callback[:name], key: callback[:args][:key])
  end
end

#before_validation(record) ⇒ Object



22
23
24
25
26
# File 'lib/tori/rails/callback.rb', line 22

def before_validation(record)
  @callbacks[:store_key].each do |callback|
    store_dummy_key(record, key: callback[:args][:key])
  end
end

#register(type, args) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/tori/rails/callback.rb', line 14

def register(type, args)
  @callbacks[type] << {
    name:     args[:name],
    callback: args[:callback],
    args:     args.slice!(:name, :callback)
  }
end