7 def self.included(base)
8 base.extend(ClassMethods)
9 base.__send__ :include, InstanceMethods
19 def replace_system_picture attr
20 d = attr["system_picture"]
21 return nil if d.blank?
22 sp = SystemPicture.store Base64.decode64(d.to_s)
23 return false unless sp
24 attr["system_picture_id"] = sp.id
25 attr.delete "system_picture"
29 def modify_object(name, attr, key = 'name')
30 c = 'find_by_' + key.to_s
31 r = self.__send__ c, name
41 def import_text(data, &blk)
42 d = JSON.parse_no_except(data)
46 d.each do |name, item|
47 m = blk.call(name, item)
48 res.push(m) unless m.valid?
50 raise ActiveRecord::Rollback unless res.empty?
55 def import_file(filename, &blk)
58 t = File.open(filename, 'r').read
62 self.import_text t, &blk
67 module InstanceMethods
75 include PettanImporter