comet_backup_ruby_sdk 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/Gemfile.lock +43 -0
  4. data/README.md +20 -4
  5. data/RELEASING.md +10 -0
  6. data/comet_backup_ruby_sdk.gemspec +1 -1
  7. data/lib/comet/comet_server.rb +184 -136
  8. data/lib/comet/definitions.rb +4 -4
  9. data/lib/comet/models/add_bucket_response_message.rb +15 -5
  10. data/lib/comet/models/admin_account_properties_response.rb +8 -2
  11. data/lib/comet/models/admin_resource_response.rb +13 -4
  12. data/lib/comet/models/admin_security_options.rb +18 -5
  13. data/lib/comet/models/admin_u2fregistration.rb +11 -3
  14. data/lib/comet/models/admin_user_permissions.rb +6 -2
  15. data/lib/comet/models/available_download.rb +10 -4
  16. data/lib/comet/models/azure_destination_location.rb +16 -7
  17. data/lib/comet/models/b2destination_location.rb +17 -6
  18. data/lib/comet/models/b2storage_extra_info.rb +6 -2
  19. data/lib/comet/models/b2transaction_totals.rb +15 -2
  20. data/lib/comet/models/backup_job_advanced_options.rb +12 -2
  21. data/lib/comet/models/backup_job_detail.rb +53 -10
  22. data/lib/comet/models/backup_job_progress.rb +21 -2
  23. data/lib/comet/models/backup_rule_config.rb +27 -7
  24. data/lib/comet/models/backup_rule_event_triggers.rb +6 -2
  25. data/lib/comet/models/branding_options.rb +59 -25
  26. data/lib/comet/models/branding_properties.rb +51 -21
  27. data/lib/comet/models/browse_disk_drives_response.rb +11 -3
  28. data/lib/comet/models/browse_edbresponse.rb +11 -3
  29. data/lib/comet/models/browse_hvresponse.rb +11 -3
  30. data/lib/comet/models/browse_vssresponse.rb +11 -3
  31. data/lib/comet/models/bucket_properties.rb +15 -3
  32. data/lib/comet/models/bucket_usage_info.rb +8 -2
  33. data/lib/comet/models/comet_apiresponse_message.rb +11 -3
  34. data/lib/comet/models/comet_destination_location.rb +12 -5
  35. data/lib/comet/models/constellation_check_report.rb +12 -2
  36. data/lib/comet/models/constellation_stats.rb +18 -2
  37. data/lib/comet/models/constellation_status_apiresponse.rb +9 -4
  38. data/lib/comet/models/content_measurement.rb +12 -2
  39. data/lib/comet/models/content_measurement_component.rb +10 -3
  40. data/lib/comet/models/create_group_policy_response.rb +13 -4
  41. data/lib/comet/models/default_email_report_policy.rb +6 -2
  42. data/lib/comet/models/destination_config.rb +101 -32
  43. data/lib/comet/models/destination_location.rb +78 -28
  44. data/lib/comet/models/destination_statistics.rb +16 -3
  45. data/lib/comet/models/device_config.rb +9 -3
  46. data/lib/comet/models/disk_drive.rb +34 -7
  47. data/lib/comet/models/dispatcher_admin_sources_response.rb +12 -4
  48. data/lib/comet/models/dispatcher_stored_objects_response.rb +11 -3
  49. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +11 -3
  50. data/lib/comet/models/edbfile_info.rb +12 -5
  51. data/lib/comet/models/email_options.rb +21 -8
  52. data/lib/comet/models/email_report_config.rb +10 -2
  53. data/lib/comet/models/email_report_generated_preview.rb +17 -6
  54. data/lib/comet/models/extra_file_exclusion.rb +11 -3
  55. data/lib/comet/models/ftpdestination_location.rb +23 -6
  56. data/lib/comet/models/get_group_policy_response.rb +14 -4
  57. data/lib/comet/models/get_profile_and_hash_response_message.rb +14 -4
  58. data/lib/comet/models/get_profile_hash_response_message.rb +13 -4
  59. data/lib/comet/models/group_policy.rb +9 -3
  60. data/lib/comet/models/hyper_vmachine_info.rb +10 -4
  61. data/lib/comet/models/job_entry.rb +93 -0
  62. data/lib/comet/models/live_user_connection.rb +20 -7
  63. data/lib/comet/models/local_destination_location.rb +15 -5
  64. data/lib/comet/models/mac_oscode_sign_properties.rb +21 -6
  65. data/lib/comet/models/mongo_dbconnection.rb +33 -14
  66. data/lib/comet/models/new_bucket_detail.rb +10 -4
  67. data/lib/comet/models/news_entry.rb +11 -3
  68. data/lib/comet/models/osinfo.rb +12 -5
  69. data/lib/comet/models/partition.rb +32 -8
  70. data/lib/comet/models/private_branding_properties.rb +39 -15
  71. data/lib/comet/models/protected_item_engine_type_policy.rb +7 -3
  72. data/lib/comet/models/public_branding_properties.rb +18 -8
  73. data/lib/comet/models/remote_server_address.rb +19 -7
  74. data/lib/comet/models/remote_storage_option.rb +22 -7
  75. data/lib/comet/models/replicator_state_apiresponse.rb +40 -4
  76. data/lib/comet/models/request_storage_vault_response_message.rb +13 -4
  77. data/lib/comet/models/restore_job_advanced_options.rb +15 -4
  78. data/lib/comet/models/retention_policy.rb +9 -2
  79. data/lib/comet/models/retention_range.rb +30 -2
  80. data/lib/comet/models/s3destination_location.rb +16 -7
  81. data/lib/comet/models/schedule_config.rb +15 -2
  82. data/lib/comet/models/search_clause.rb +14 -6
  83. data/lib/comet/models/server_config_options_branding_fragment.rb +7 -2
  84. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +7 -2
  85. data/lib/comet/models/server_meta_version_info.rb +45 -7
  86. data/lib/comet/models/session_key_regenerated_response.rb +15 -5
  87. data/lib/comet/models/sftpdestination_location.rb +21 -8
  88. data/lib/comet/models/size_measurement.rb +15 -2
  89. data/lib/comet/models/software_build_role_options.rb +6 -2
  90. data/lib/comet/models/software_update_news_response.rb +13 -6
  91. data/lib/comet/models/source_basic_info.rb +11 -3
  92. data/lib/comet/models/source_config.rb +22 -8
  93. data/lib/comet/models/source_statistics.rb +7 -2
  94. data/lib/comet/models/spanned_destination_location.rb +6 -2
  95. data/lib/comet/models/spanned_storage_extra_info.rb +6 -2
  96. data/lib/comet/models/sshconnection.rb +19 -7
  97. data/lib/comet/models/stat_result.rb +18 -2
  98. data/lib/comet/models/storage_free_space_info.rb +14 -2
  99. data/lib/comet/models/storage_vault_provider_policy.rb +8 -2
  100. data/lib/comet/models/stored_object.rb +27 -5
  101. data/lib/comet/models/streamable_event.rb +9 -2
  102. data/lib/comet/models/swift_destination_location.rb +32 -15
  103. data/lib/comet/models/test_response.rb +11 -3
  104. data/lib/comet/models/totp_regenerated_response.rb +17 -6
  105. data/lib/comet/models/u2fregister_request.rb +10 -4
  106. data/lib/comet/models/u2fregistered_key.rb +12 -5
  107. data/lib/comet/models/u2fregistration_challenge_response.rb +15 -5
  108. data/lib/comet/models/u2fsign_request.rb +12 -5
  109. data/lib/comet/models/u2fsign_response.rb +14 -6
  110. data/lib/comet/models/uninstall_config.rb +6 -2
  111. data/lib/comet/models/update_campaign_device_status.rb +9 -2
  112. data/lib/comet/models/update_campaign_options.rb +6 -2
  113. data/lib/comet/models/update_campaign_properties.rb +11 -3
  114. data/lib/comet/models/update_campaign_status.rb +11 -3
  115. data/lib/comet/models/update_campaign_status_device_entry.rb +13 -4
  116. data/lib/comet/models/user_custom_email_settings.rb +6 -2
  117. data/lib/comet/models/user_on_server.rb +11 -3
  118. data/lib/comet/models/user_policy.rb +22 -2
  119. data/lib/comet/models/user_profile_config.rb +41 -12
  120. data/lib/comet/models/user_profile_fragment.rb +8 -3
  121. data/lib/comet/models/vault_snapshot.rb +13 -4
  122. data/lib/comet/models/vsscomponent.rb +12 -5
  123. data/lib/comet/models/vsswriter_info.rb +8 -3
  124. data/lib/comet/models/web_interface_branding_properties.rb +14 -6
  125. data/lib/comet/models/webhook_option.rb +10 -3
  126. data/lib/comet/models/win_smbauth.rb +15 -5
  127. data/lib/comet/models/windows_code_sign_properties.rb +26 -9
  128. data/lib/comet_backup_ruby_sdk.rb +1 -0
  129. metadata +6 -2
@@ -27,28 +27,36 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @description = ''
35
+ @size = 0
30
36
  @override_destination_retention = {}
31
37
  @unknown_json_fields = {}
32
38
  end
33
39
 
34
40
  # @param [String] json_string The complete object in JSON format
35
41
  def from_json(json_string)
36
- raise TypeError 'expected string' unless json_string.is_a? String
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
43
 
38
44
  from_hash(JSON.parse(json_string))
39
45
  end
40
46
 
41
47
  # @param [Hash] obj The complete object as a Ruby hash
42
48
  def from_hash(obj)
43
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
50
 
45
51
  obj.each do |k, v|
46
52
  case k
47
53
  when 'Description'
48
- raise TypeError 'expected string' unless v.is_a? String
54
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
49
55
 
50
56
  @description = v
51
57
  when 'Size'
58
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
52
60
  @size = v
53
61
  when 'OverrideDestinationRetention'
54
62
  @override_destination_retention = {}
@@ -48,41 +48,55 @@ module Comet
48
48
  attr_accessor :unknown_json_fields
49
49
 
50
50
  def initialize
51
+ clear
52
+ end
53
+
54
+ def clear
55
+ @engine = ''
56
+ @description = ''
57
+ @owner_device = ''
58
+ @create_time = 0
59
+ @modify_time = 0
51
60
  @pre_exec = []
52
61
  @post_exec = []
53
62
  @engine_props = {}
54
63
  @override_destination_retention = {}
64
+ @statistics = Comet::SourceStatistics.new
55
65
  @unknown_json_fields = {}
56
66
  end
57
67
 
58
68
  # @param [String] json_string The complete object in JSON format
59
69
  def from_json(json_string)
60
- raise TypeError 'expected string' unless json_string.is_a? String
70
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
61
71
 
62
72
  from_hash(JSON.parse(json_string))
63
73
  end
64
74
 
65
75
  # @param [Hash] obj The complete object as a Ruby hash
66
76
  def from_hash(obj)
67
- raise TypeError 'expected hash' unless obj.is_a? Hash
77
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
68
78
 
69
79
  obj.each do |k, v|
70
80
  case k
71
81
  when 'Engine'
72
- raise TypeError 'expected string' unless v.is_a? String
82
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
73
83
 
74
84
  @engine = v
75
85
  when 'Description'
76
- raise TypeError 'expected string' unless v.is_a? String
86
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
77
87
 
78
88
  @description = v
79
89
  when 'OwnerDevice'
80
- raise TypeError 'expected string' unless v.is_a? String
90
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
81
91
 
82
92
  @owner_device = v
83
93
  when 'CreateTime'
94
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
95
+
84
96
  @create_time = v
85
97
  when 'ModifyTime'
98
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
99
+
86
100
  @modify_time = v
87
101
  when 'PreExec'
88
102
  if v.nil?
@@ -90,7 +104,7 @@ module Comet
90
104
  else
91
105
  @pre_exec = Array.new(v.length)
92
106
  v.each_with_index do |v1, i1|
93
- raise TypeError 'expected string' unless v1.is_a? String
107
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
94
108
 
95
109
  @pre_exec[i1] = v1
96
110
  end
@@ -101,7 +115,7 @@ module Comet
101
115
  else
102
116
  @post_exec = Array.new(v.length)
103
117
  v.each_with_index do |v1, i1|
104
- raise TypeError 'expected string' unless v1.is_a? String
118
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
105
119
 
106
120
  @post_exec[i1] = v1
107
121
  end
@@ -112,7 +126,7 @@ module Comet
112
126
  @engine_props = {}
113
127
  else
114
128
  v.each do |k1, v1|
115
- raise TypeError 'expected string' unless v1.is_a? String
129
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
116
130
 
117
131
  @engine_props[k1] = v1
118
132
  end
@@ -21,19 +21,24 @@ module Comet
21
21
  attr_accessor :unknown_json_fields
22
22
 
23
23
  def initialize
24
+ clear
25
+ end
26
+
27
+ def clear
28
+ @last_backup_job = Comet::BackupJobDetail.new
24
29
  @unknown_json_fields = {}
25
30
  end
26
31
 
27
32
  # @param [String] json_string The complete object in JSON format
28
33
  def from_json(json_string)
29
- raise TypeError 'expected string' unless json_string.is_a? String
34
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
30
35
 
31
36
  from_hash(JSON.parse(json_string))
32
37
  end
33
38
 
34
39
  # @param [Hash] obj The complete object as a Ruby hash
35
40
  def from_hash(obj)
36
- raise TypeError 'expected hash' unless obj.is_a? Hash
41
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
37
42
 
38
43
  obj.each do |k, v|
39
44
  case k
@@ -21,20 +21,24 @@ module Comet
21
21
  attr_accessor :unknown_json_fields
22
22
 
23
23
  def initialize
24
+ clear
25
+ end
26
+
27
+ def clear
24
28
  @span_targets = []
25
29
  @unknown_json_fields = {}
26
30
  end
27
31
 
28
32
  # @param [String] json_string The complete object in JSON format
29
33
  def from_json(json_string)
30
- raise TypeError 'expected string' unless json_string.is_a? String
34
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
31
35
 
32
36
  from_hash(JSON.parse(json_string))
33
37
  end
34
38
 
35
39
  # @param [Hash] obj The complete object as a Ruby hash
36
40
  def from_hash(obj)
37
- raise TypeError 'expected hash' unless obj.is_a? Hash
41
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
38
42
 
39
43
  obj.each do |k, v|
40
44
  case k
@@ -21,20 +21,24 @@ module Comet
21
21
  attr_accessor :unknown_json_fields
22
22
 
23
23
  def initialize
24
+ clear
25
+ end
26
+
27
+ def clear
24
28
  @targets = []
25
29
  @unknown_json_fields = {}
26
30
  end
27
31
 
28
32
  # @param [String] json_string The complete object in JSON format
29
33
  def from_json(json_string)
30
- raise TypeError 'expected string' unless json_string.is_a? String
34
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
31
35
 
32
36
  from_hash(JSON.parse(json_string))
33
37
  end
34
38
 
35
39
  # @param [Hash] obj The complete object as a Ruby hash
36
40
  def from_hash(obj)
37
- raise TypeError 'expected hash' unless obj.is_a? Hash
41
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
38
42
 
39
43
  obj.each do |k, v|
40
44
  case k
@@ -39,44 +39,56 @@ module Comet
39
39
  attr_accessor :unknown_json_fields
40
40
 
41
41
  def initialize
42
+ clear
43
+ end
44
+
45
+ def clear
46
+ @sshserver = ''
47
+ @sshusername = ''
48
+ @sshauth_mode = 0
49
+ @sshpassword = ''
50
+ @sshprivate_key = ''
51
+ @sshcustom_auth__known_hosts_file = ''
42
52
  @unknown_json_fields = {}
43
53
  end
44
54
 
45
55
  # @param [String] json_string The complete object in JSON format
46
56
  def from_json(json_string)
47
- raise TypeError 'expected string' unless json_string.is_a? String
57
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
48
58
 
49
59
  from_hash(JSON.parse(json_string))
50
60
  end
51
61
 
52
62
  # @param [Hash] obj The complete object as a Ruby hash
53
63
  def from_hash(obj)
54
- raise TypeError 'expected hash' unless obj.is_a? Hash
64
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
55
65
 
56
66
  obj.each do |k, v|
57
67
  case k
58
68
  when 'SSHServer'
59
- raise TypeError 'expected string' unless v.is_a? String
69
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
60
70
 
61
71
  @sshserver = v
62
72
  when 'SSHUsername'
63
- raise TypeError 'expected string' unless v.is_a? String
73
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
64
74
 
65
75
  @sshusername = v
66
76
  when 'SSHAuthMode'
77
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
78
+
67
79
  @sshauth_mode = v
68
80
  when 'SSHPassword'
69
- raise TypeError 'expected string' unless v.is_a? String
81
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
70
82
 
71
83
  @sshpassword = v
72
84
  when 'SSHPrivateKey'
73
- raise TypeError 'expected string' unless v.is_a? String
85
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
74
86
 
75
87
  @sshprivate_key = v
76
88
  when 'SSHCustomAuth_UseKnownHostsFile'
77
89
  @sshcustom_auth__use_known_hosts_file = v
78
90
  when 'SSHCustomAuth_KnownHostsFile'
79
- raise TypeError 'expected string' unless v.is_a? String
91
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
80
92
 
81
93
  @sshcustom_auth__known_hosts_file = v
82
94
  else
@@ -30,29 +30,45 @@ module Comet
30
30
  attr_accessor :unknown_json_fields
31
31
 
32
32
  def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @buckets = 0
38
+ @users = 0
39
+ @devices = 0
40
+ @boosters = 0
33
41
  @unknown_json_fields = {}
34
42
  end
35
43
 
36
44
  # @param [String] json_string The complete object in JSON format
37
45
  def from_json(json_string)
38
- raise TypeError 'expected string' unless json_string.is_a? String
46
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
39
47
 
40
48
  from_hash(JSON.parse(json_string))
41
49
  end
42
50
 
43
51
  # @param [Hash] obj The complete object as a Ruby hash
44
52
  def from_hash(obj)
45
- raise TypeError 'expected hash' unless obj.is_a? Hash
53
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
54
 
47
55
  obj.each do |k, v|
48
56
  case k
49
57
  when 'Buckets'
58
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
50
60
  @buckets = v
51
61
  when 'Users'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
52
64
  @users = v
53
65
  when 'Devices'
66
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
67
+
54
68
  @devices = v
55
69
  when 'Boosters'
70
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
71
+
56
72
  @boosters = v
57
73
  else
58
74
  @unknown_json_fields[k] = v
@@ -33,27 +33,39 @@ module Comet
33
33
  attr_accessor :unknown_json_fields
34
34
 
35
35
  def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @used_percent = 0
41
+ @available_bytes = 0
42
+ @spanned = Comet::SpannedStorageExtraInfo.new
43
+ @b2 = Comet::B2StorageExtraInfo.new
36
44
  @unknown_json_fields = {}
37
45
  end
38
46
 
39
47
  # @param [String] json_string The complete object in JSON format
40
48
  def from_json(json_string)
41
- raise TypeError 'expected string' unless json_string.is_a? String
49
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
50
 
43
51
  from_hash(JSON.parse(json_string))
44
52
  end
45
53
 
46
54
  # @param [Hash] obj The complete object as a Ruby hash
47
55
  def from_hash(obj)
48
- raise TypeError 'expected hash' unless obj.is_a? Hash
56
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
57
 
50
58
  obj.each do |k, v|
51
59
  case k
52
60
  when 'Unlimited'
53
61
  @unlimited = v
54
62
  when 'UsedPercent'
63
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
64
+
55
65
  @used_percent = v
56
66
  when 'AvailableBytes'
67
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
68
+
57
69
  @available_bytes = v
58
70
  when 'Spanned'
59
71
  @spanned = Comet::SpannedStorageExtraInfo.new
@@ -24,20 +24,24 @@ module Comet
24
24
  attr_accessor :unknown_json_fields
25
25
 
26
26
  def initialize
27
+ clear
28
+ end
29
+
30
+ def clear
27
31
  @allowed_providers_when_restricted = []
28
32
  @unknown_json_fields = {}
29
33
  end
30
34
 
31
35
  # @param [String] json_string The complete object in JSON format
32
36
  def from_json(json_string)
33
- raise TypeError 'expected string' unless json_string.is_a? String
37
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
34
38
 
35
39
  from_hash(JSON.parse(json_string))
36
40
  end
37
41
 
38
42
  # @param [Hash] obj The complete object as a Ruby hash
39
43
  def from_hash(obj)
40
- raise TypeError 'expected hash' unless obj.is_a? Hash
44
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
41
45
 
42
46
  obj.each do |k, v|
43
47
  case k
@@ -49,6 +53,8 @@ module Comet
49
53
  else
50
54
  @allowed_providers_when_restricted = Array.new(v.length)
51
55
  v.each_with_index do |v1, i1|
56
+ raise TypeError "'v1' expected Numeric, got #{v1.class}" unless v1.is_a? Numeric
57
+
52
58
  @allowed_providers_when_restricted[i1] = v1
53
59
  end
54
60
  end
@@ -45,45 +45,67 @@ module Comet
45
45
  attr_accessor :unknown_json_fields
46
46
 
47
47
  def initialize
48
+ clear
49
+ end
50
+
51
+ def clear
52
+ @name = ''
53
+ @modify_time = 0
54
+ @type = ''
55
+ @subtree = ''
56
+ @size = 0
57
+ @recursive_files = 0
58
+ @recursive_bytes = 0
59
+ @recursive_folders = 0
48
60
  @unknown_json_fields = {}
49
61
  end
50
62
 
51
63
  # @param [String] json_string The complete object in JSON format
52
64
  def from_json(json_string)
53
- raise TypeError 'expected string' unless json_string.is_a? String
65
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
54
66
 
55
67
  from_hash(JSON.parse(json_string))
56
68
  end
57
69
 
58
70
  # @param [Hash] obj The complete object as a Ruby hash
59
71
  def from_hash(obj)
60
- raise TypeError 'expected hash' unless obj.is_a? Hash
72
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
61
73
 
62
74
  obj.each do |k, v|
63
75
  case k
64
76
  when 'name'
65
- raise TypeError 'expected string' unless v.is_a? String
77
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
66
78
 
67
79
  @name = v
68
80
  when 'mtime'
81
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
82
+
69
83
  @modify_time = v
70
84
  when 'type'
71
- raise TypeError 'expected string' unless v.is_a? String
85
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
72
86
 
73
87
  @type = v
74
88
  when 'subtree'
75
- raise TypeError 'expected string' unless v.is_a? String
89
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
76
90
 
77
91
  @subtree = v
78
92
  when 'size'
93
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
94
+
79
95
  @size = v
80
96
  when 'r'
81
97
  @recursive_count_known = v
82
98
  when 'f'
99
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
100
+
83
101
  @recursive_files = v
84
102
  when 'b'
103
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
104
+
85
105
  @recursive_bytes = v
86
106
  when 'd'
107
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
108
+
87
109
  @recursive_folders = v
88
110
  else
89
111
  @unknown_json_fields[k] = v