Method: Zephyrus::Operation#write

Defined in:
lib/zephyrus/operation.rb

#write(node, objects, &block) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/zephyrus/operation.rb', line 94

def write( node, objects, &block )
  result = nil
  Zephyrus::Request.new.tap do | request |
    serializer = Zephyrus::Serializer.new( objects )
    response = request.post( @path, @parameters, serializer.serialize( node ) )
    if response.present?
      result = response.resources
      if block_given?
        case block.arity 
          when 0; yield 
          when 1; yield result
          when 2; yield result, response
        end
      end        
    end 
  end
  result
end