Method: ShopifyAPI.add_cache_methods

Defined in:
lib/shopifydev/shopify_api/caches.rb

.add_cache_methods(obj, opts, entity) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/shopifydev/shopify_api/caches.rb', line 82

def add_cache_methods(obj, opts, entity)
  obj.singleton_class.class_eval{define_method(:label){entity.collection_name}}
  obj.singleton_class.class_eval{define_method(:since=){|t| @since = t }}
  obj.singleton_class.class_eval{define_method(:since){ @since }}
  obj.singleton_class.class_eval{attr_accessor :params}
  obj.since = Time.now
  obj.singleton_class.class_eval{define_method(:r) { |msg = 'reloading'| 
    puts "#{msg}..."
    self.replace(entity.find(:all, params: self.params))
    self.since = Time.now
    puts "#{self.length} records."
    self
  }}
  obj.singleton_class.class_eval{define_method(:delete_all) {
    puts "deleting all #{entity.collection_name}..."
    self.each{|e| entity.delete(e.id)}
    self.r
  }}
end