Sha256: 7f4a0789c7ea2e0e9ad19ef4a4bc4fc0901d1877c37b563d5853bfa640ddd7f3
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
module Rhoconnect module Handler module Changes class Runner attr_accessor :source,:client,:engine,:model,:params,:operations def initialize(operations,model,client,route_handler, params = {}) raise ArgumentError.new(UNKNOWN_CLIENT) unless client raise ArgumentError.new(UNKNOWN_SOURCE) unless (model and model.source) raise ArgumentError.new('Invalid app for source') unless model.source.app @source,@client = model.source,client @model = model @client.last_sync = Time.now if @client @params = params @operations = operations @engine = Rhoconnect::Handler::Changes::Engine.new(@operations, @model, route_handler, @params) end def run _process_blobs(params) processed = 0 operations.each do |op| key,value = op,params[op] processed += _receive_cud(key,value) if value end @engine.do_cud end private def _receive_cud(operation,params) return 0 if not operations.include?(operation) @source.push_queue(operation,@client.id,params,true) return 1 end def _process_blobs(params) unless params[:blob_fields].nil? [:create,:update].each do |utype| objects = params[utype] || {} objects.each do |id,obj| params[:blob_fields].each do |field| blob = params["#{field}-#{id}"] obj[field] = @model.store_blob(obj,field,blob) end end end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rhoconnect-4.0.0.beta.10 | lib/rhoconnect/handler/changes/runner.rb |
rhoconnect-4.0.0.beta.12 | lib/rhoconnect/handler/changes/runner.rb |