Sha256: 420129e221baceb97bab077d60075936c6ec672f4497dc81ba9b16f87c7e3182

Contents?: true

Size: 603 Bytes

Versions: 8

Compression:

Stored size: 603 Bytes

Contents

module Reactor
  module Plans
    class UpdateObj
      include Prepared

      def initialize(opts = {})
        @key = opts[:obj_id] || opts[:path]
        @attrs = {}
      end

      def set(key, value)
        @attrs[key.to_sym] = value
      end

      def prepare!
        error("object (key=#{@key}) not found") unless Reactor::Cm::Obj.exists?(@key)
        # TODO: attribute check
      end

      def migrate!
        Reactor::Cm::Obj.get(@key)
        @attrs.each do |key, value|
          @obj.set(key, value)
        end
        @obj.save!
        @obj.release!
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
infopark_reactor-1.29.1 lib/reactor/plans/update_obj.rb
infopark_reactor-1.29.0 lib/reactor/plans/update_obj.rb
infopark_reactor-1.28.0 lib/reactor/plans/update_obj.rb
infopark_reactor-1.27.0.rc10 lib/reactor/plans/update_obj.rb
infopark_reactor-1.27.0.rc9 lib/reactor/plans/update_obj.rb
infopark_reactor-1.27.0.rc8 lib/reactor/plans/update_obj.rb
infopark_reactor-1.27.0.rc7 lib/reactor/plans/update_obj.rb
infopark_reactor-1.27.0.rc4 lib/reactor/plans/update_obj.rb