DistelliServiceMarshallers 1.1 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,12 +37,18 @@ module Distelli
37
37
  return obj.strftime("%Y-%m-%dT%H:%M:%S%z")
38
38
  end
39
39
 
40
+ params_set_name = '_'+obj.class.name.split('::').last+'__params'
40
41
  type_map_name = '_'+obj.class.name.split('::').last+'__type_map'
42
+ params_set = obj.instance_variable_get('@'+params_set_name)
41
43
  obj.instance_variables.each do |var|
42
44
  var_name = var.to_s.delete('@')
43
- if var_name == type_map_name
45
+ if var_name == type_map_name or var_name == params_set_name
44
46
  next
45
47
  end
48
+ if params_set != nil and params_set.include?(var_name)
49
+ next
50
+ end
51
+
46
52
  val = obj.instance_variable_get(var)
47
53
  if val.is_a?(Integer) or val.is_a?(Float) or val.is_a?(String) or val.is_a?(TrueClass) or val.is_a?(FalseClass)
48
54
  data[var_name] = val
@@ -72,9 +78,9 @@ module Distelli
72
78
 
73
79
  def marshall_error(error)
74
80
  if not error.is_a?(Distelli::BaseException)
75
- raise StandardError.new("Cannot marshall error: "+error.inspect)
81
+ raise StandardError.new("Cannot marshall error: "+error.inspect)
76
82
  end
77
-
83
+
78
84
  err_msg = error.err_msg
79
85
  err_code = error.err_code
80
86
  return '{"Error":{"code":"'+err_code.to_s+'", "message":"'+err_msg.to_s+'"}}'
@@ -208,7 +214,7 @@ module Distelli
208
214
 
209
215
  def marshall_error(error)
210
216
  if not error.is_a?(Distelli::BaseException)
211
- raise StandardError.new("Cannot marshall error: "+error.inspect)
217
+ raise StandardError.new("Cannot marshall error: "+error.inspect)
212
218
  end
213
219
 
214
220
  err_msg = error.err_msg
@@ -396,16 +402,24 @@ module Distelli
396
402
 
397
403
  private
398
404
  def encode_obj_xml(obj)
405
+ params_set_name = '_'+obj.class.name.split('::').last+'__params'
406
+ params_set = obj.instance_variable_get('@'+params_set_name)
407
+
399
408
  type_map_name = '_'+obj.class.name.split('::').last+'__type_map'
400
409
  type_map = obj.instance_variable_get('@'+type_map_name)
410
+
401
411
  xml_data = Array.new
402
412
 
403
413
  obj.instance_variables.each do |var|
404
414
  k = var.to_s.delete('@')
405
415
  # puts "Var: "+var.to_s+" TMN: "+type_map_name.to_s
406
- if k == type_map_name
416
+ if k == type_map_name or k == params_set_name
417
+ next
418
+ end
419
+ if params_set != nil and params_set.include?(k)
407
420
  next
408
421
  end
422
+
409
423
  v = obj.instance_variable_get(var)
410
424
  data_type = type_map[k]
411
425
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DistelliServiceMarshallers
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '1.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2012-12-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: DistelliServiceInterface
@@ -70,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  version: '0'
71
71
  requirements: []
72
72
  rubyforge_project:
73
- rubygems_version: 1.8.23
73
+ rubygems_version: 1.8.24
74
74
  signing_key:
75
75
  specification_version: 3
76
76
  summary: Distelli Service Marshaller classes