Module: Levene::Extensions::Binding
- Defined in:
- lib/levene/extensions/binding.rb
Instance Method Summary collapse
- #create(model) ⇒ Object
- #describe(model) ⇒ Object
- #logout ⇒ Object
- #query(model, conditions) ⇒ Object
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 |
#logout ⇒ Object
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 |