7 def self.included(base)
8 base.extend(ClassMethods)
9 base.__send__ :include, InstanceMethods
19 def import_system_picture attr
21 return false if d.blank?
22 imager = PettanImager.load(Base64.decode64(d.to_s))
23 return false unless imager
24 sp = SystemPicture.store(imager)
25 return false unless sp
29 def replace_system_picture attr
30 attr.each do |name, value|
32 r = if name.to_s =~ /_id$/
33 self.import_system_picture value
35 self.replace_system_picture value
43 def modify_object(name, attr, key = 'name')
44 c = 'find_by_' + key.to_s
45 r = self.__send__ c, name
55 def import_text(data, &blk)
56 d = JSON.parse_no_except(data)
60 d.each do |name, item|
61 m = blk.call(name, item)
62 res.push(m) unless m.valid?
64 raise ActiveRecord::Rollback unless res.empty?
69 def import_file(filename, &blk)
72 t = File.open(filename, 'r').read
76 self.import_text t, &blk
81 module InstanceMethods
89 include PettanImporter