rake_helper.rb revision bc9e15ca07956db262187916be61f3567167e1c6
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksamodule RakeHelper
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa def self.import_logicgraph(email = nil)
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa def save(user, symbol)
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa symbol.user = user if symbol.has_attribute? "user_id"
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa begin
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa symbol.save!
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa rescue ActiveRecord::RecordInvalid => e
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa puts "Validation-Error: #{e.record} (#{e.message})"
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa end
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa end
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa user = User.find_all_by_admin(true).first
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa user = User.find_by_email! email unless nil.nil?
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa Dir.mktmpdir do |dir|
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa Dir.chdir(dir) do
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa system("#{Settings.hets.executable_path} -G")
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa LogicgraphParser.parse(File.open(File.join(dir, 'LogicGraph.xml')),
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa logic: Proc.new{ |h| save(user, h) },
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa language: Proc.new{ |h| save(user, h) },
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa logic_mapping: Proc.new{ |h| save(user, h) },
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa support: Proc.new{ |h| save(user, h) })
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa end
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa end
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksa end
bc9e15ca07956db262187916be61f3567167e1c6Eugen Kuksaend