Module: QueryDam::Trackable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/query_dam/concerns/trackable.rb
Instance Method Summary collapse
Instance Method Details
#save_previous_query_dam_status ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/query_dam/concerns/trackable.rb', line 11 def save_previous_query_dam_status return unless persisted? @_query_dam_previous_status = {} queries_set = Redis::Set.new(self.class.name) queries_set.members.each do |key| query_hash = Redis::HashKey.new(key) unless query_hash.exists? queries_set.delete(key) next end query = query_hash[:query].gsub(key, id.to_s) @_query_dam_previous_status[key] = self.class.find_by_sql(query).any? end end |
#update_query_dam ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/query_dam/concerns/trackable.rb', line 31 def update_query_dam queries_set = Redis::Set.new(self.class.name) queries_set.members.each do |key| query_hash = Redis::HashKey.new(key) unless query_hash.exists? queries_set.delete(key) next end query = query_hash[:query].gsub(key, id.to_s) if self.class.find_by_sql(query).any? QueryDam.updates_set(key) << id QueryDam.exclusions_set(key).delete id elsif @_query_dam_previous_status[key] QueryDam.updates_set(key).delete id QueryDam.exclusions_set(key) << id end end end |