Module: Levene::Extensions::Binding

Defined in:
lib/levene/extensions/binding.rb

Instance Method Summary collapse

Instance Method Details

#create(model) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/levene/extensions/binding.rb', line 29

def create(model)
  return false unless model.valid?
  result = call_remote(:create, model.to_s_object)
  if result[:Fault]
    raise result[:Fault][:faultstring]
  else
    unless result[:createResponse][:result][:id].nil?
      model.id = result[:createResponse][:result][:id]
      return true
    else
      model.errors.add_to_base(result[:createResponse][:result][:errors][:message])
      return false
    end
  end
end

#describe(model) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/levene/extensions/binding.rb', line 10

def describe(model)
  result = call_remote(:describeSObject, :sObjectType => model.name.demodulize)
  if result[:Fault]
    raise result[:Fault][:faultstring]
  else
    return result[:describeSObjectResponse][:result][:fields]
  end
end

#logoutObject



5
6
7
8
# File 'lib/levene/extensions/binding.rb', line 5

def logout
  response = call_remote(:logout, [])
  @session_id = nil
end

#query(model, conditions) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/levene/extensions/binding.rb', line 19

def query(model, conditions)
  full_query = "SELECT #{model.columns.collect {|c| c[:name]}.join(", ")} FROM #{model.model_name.demodulize} #{conditions || ""}"
  result = call_remote(:query, :queryString => full_query)
  if result[:Fault]
    raise result[:Fault][:faultstring]
  else
    result[:queryResponse][:result].nil? ? [] : [result[:queryResponse][:result][:records]].flatten
  end
end