Module: JbuilderDeferredRender::JbuilderExt

Extended by:
ActiveSupport::Concern
Defined in:
lib/jbuilder_deferred_render/jbuilder_ext.rb

Class Method Summary collapse

Class Method Details

.get_attributes(json) ⇒ Object



24
25
26
27
28
# File 'lib/jbuilder_deferred_render/jbuilder_ext.rb', line 24

def self.get_attributes(json)
  json.instance_eval do
    @attributes 
  end
end

.set_attributes(json, attrs) ⇒ Object



30
31
32
33
34
# File 'lib/jbuilder_deferred_render/jbuilder_ext.rb', line 30

def self.set_attributes(json, attrs)
  json.instance_eval do
    @attributes  = attrs
  end
end

.when(json, promise) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/jbuilder_deferred_render/jbuilder_ext.rb', line 8

def self.when(json, promise)
  deferred_attrs = get_attributes(json)

  Q.defer do |defer|
    promise.then do |result|
      current_attrs = get_attributes(json)
      begin 
        set_attributes(json, deferred_attrs)
        defer.resolve(result)
      ensure
        set_attributes(json, current_attrs)
      end
    end
  end 
end