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
@@ -33,37 +33,45 @@ module Comet
33
33
  attr_accessor :unknown_json_fields
34
34
 
35
35
  def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @clause_type = ''
41
+ @rule_field = ''
42
+ @rule_operator = ''
43
+ @rule_value = ''
36
44
  @clause_children = []
37
45
  @unknown_json_fields = {}
38
46
  end
39
47
 
40
48
  # @param [String] json_string The complete object in JSON format
41
49
  def from_json(json_string)
42
- raise TypeError 'expected string' unless json_string.is_a? String
50
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
51
 
44
52
  from_hash(JSON.parse(json_string))
45
53
  end
46
54
 
47
55
  # @param [Hash] obj The complete object as a Ruby hash
48
56
  def from_hash(obj)
49
- raise TypeError 'expected hash' unless obj.is_a? Hash
57
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
58
 
51
59
  obj.each do |k, v|
52
60
  case k
53
61
  when 'ClauseType'
54
- raise TypeError 'expected string' unless v.is_a? String
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
55
63
 
56
64
  @clause_type = v
57
65
  when 'RuleField'
58
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
67
 
60
68
  @rule_field = v
61
69
  when 'RuleOperator'
62
- raise TypeError 'expected string' unless v.is_a? String
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
63
71
 
64
72
  @rule_operator = v
65
73
  when 'RuleValue'
66
- raise TypeError 'expected string' unless v.is_a? String
74
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
67
75
 
68
76
  @rule_value = v
69
77
  when 'ClauseChildren'
@@ -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
+ @branding = Comet::BrandingOptions.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,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
+ @software_build_role = Comet::SoftwareBuildRoleOptions.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
@@ -81,29 +81,47 @@ module Comet
81
81
  attr_accessor :unknown_json_fields
82
82
 
83
83
  def initialize
84
+ clear
85
+ end
86
+
87
+ def clear
88
+ @version = ''
89
+ @version_codename = ''
84
90
  @experimental_options = []
91
+ @server_start_time = 0
92
+ @server_start_hash = ''
93
+ @current_time = 0
94
+ @server_license_hash = ''
95
+ @license_valid_until = 0
96
+ @emails_sent_successfully = 0
97
+ @emails_sent_errors = 0
98
+ @emails_waiting_in_queue = 0
99
+ @scheduled_email_thread_current_state = 0
100
+ @scheduled_email_thread_last_calculate_duration_nanos = 0
101
+ @scheduled_email_thread_waiting_until = 0
102
+ @scheduled_email_thread_last_wake_time = 0
85
103
  @unknown_json_fields = {}
86
104
  end
87
105
 
88
106
  # @param [String] json_string The complete object in JSON format
89
107
  def from_json(json_string)
90
- raise TypeError 'expected string' unless json_string.is_a? String
108
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
91
109
 
92
110
  from_hash(JSON.parse(json_string))
93
111
  end
94
112
 
95
113
  # @param [Hash] obj The complete object as a Ruby hash
96
114
  def from_hash(obj)
97
- raise TypeError 'expected hash' unless obj.is_a? Hash
115
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
98
116
 
99
117
  obj.each do |k, v|
100
118
  case k
101
119
  when 'Version'
102
- raise TypeError 'expected string' unless v.is_a? String
120
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
103
121
 
104
122
  @version = v
105
123
  when 'VersionCodename'
106
- raise TypeError 'expected string' unless v.is_a? String
124
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
107
125
 
108
126
  @version_codename = v
109
127
  when 'StorageRole'
@@ -122,38 +140,58 @@ module Comet
122
140
  else
123
141
  @experimental_options = Array.new(v.length)
124
142
  v.each_with_index do |v1, i1|
125
- raise TypeError 'expected string' unless v1.is_a? String
143
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
126
144
 
127
145
  @experimental_options[i1] = v1
128
146
  end
129
147
  end
130
148
  when 'ServerStartTime'
149
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
150
+
131
151
  @server_start_time = v
132
152
  when 'ServerStartHash'
133
- raise TypeError 'expected string' unless v.is_a? String
153
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
134
154
 
135
155
  @server_start_hash = v
136
156
  when 'CurrentTime'
157
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
158
+
137
159
  @current_time = v
138
160
  when 'ServerLicenseHash'
139
- raise TypeError 'expected string' unless v.is_a? String
161
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
140
162
 
141
163
  @server_license_hash = v
142
164
  when 'LicenseValidUntil'
165
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
166
+
143
167
  @license_valid_until = v
144
168
  when 'EmailsSentSuccessfully'
169
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
170
+
145
171
  @emails_sent_successfully = v
146
172
  when 'EmailsSentErrors'
173
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
174
+
147
175
  @emails_sent_errors = v
148
176
  when 'EmailsWaitingInQueue'
177
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
178
+
149
179
  @emails_waiting_in_queue = v
150
180
  when 'ScheduledEmailThreadCurrentState'
181
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
182
+
151
183
  @scheduled_email_thread_current_state = v
152
184
  when 'ScheduledEmailThreadLastCalculateDurationNanos'
185
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
186
+
153
187
  @scheduled_email_thread_last_calculate_duration_nanos = v
154
188
  when 'ScheduledEmailThreadWaitingUntil'
189
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
190
+
155
191
  @scheduled_email_thread_waiting_until = v
156
192
  when 'ScheduledEmailThreadLastWakeTime'
193
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
194
+
157
195
  @scheduled_email_thread_last_wake_time = v
158
196
  when 'ScheduledEmailThreadLastWakeSentEmails'
159
197
  @scheduled_email_thread_last_wake_sent_emails = v
@@ -30,34 +30,44 @@ module Comet
30
30
  attr_accessor :unknown_json_fields
31
31
 
32
32
  def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @status = 0
38
+ @message = ''
39
+ @session_key = ''
40
+ @session_type = ''
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 'Status'
58
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
50
60
  @status = v
51
61
  when 'Message'
52
- raise TypeError 'expected string' unless v.is_a? String
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
53
63
 
54
64
  @message = v
55
65
  when 'SessionKey'
56
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
57
67
 
58
68
  @session_key = v
59
69
  when 'SessionType'
60
- raise TypeError 'expected string' unless v.is_a? String
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
61
71
 
62
72
  @session_type = v
63
73
  else
@@ -42,48 +42,61 @@ module Comet
42
42
  attr_accessor :unknown_json_fields
43
43
 
44
44
  def initialize
45
+ clear
46
+ end
47
+
48
+ def clear
49
+ @sftpserver = ''
50
+ @sftpusername = ''
51
+ @sftpremote_path = ''
52
+ @sftpauth_mode = 0
53
+ @sftppassword = ''
54
+ @sftpprivate_key = ''
55
+ @sftpcustom_auth__known_hosts_file = ''
45
56
  @unknown_json_fields = {}
46
57
  end
47
58
 
48
59
  # @param [String] json_string The complete object in JSON format
49
60
  def from_json(json_string)
50
- raise TypeError 'expected string' unless json_string.is_a? String
61
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
51
62
 
52
63
  from_hash(JSON.parse(json_string))
53
64
  end
54
65
 
55
66
  # @param [Hash] obj The complete object as a Ruby hash
56
67
  def from_hash(obj)
57
- raise TypeError 'expected hash' unless obj.is_a? Hash
68
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
58
69
 
59
70
  obj.each do |k, v|
60
71
  case k
61
72
  when 'SFTPServer'
62
- raise TypeError 'expected string' unless v.is_a? String
73
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
63
74
 
64
75
  @sftpserver = v
65
76
  when 'SFTPUsername'
66
- raise TypeError 'expected string' unless v.is_a? String
77
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
67
78
 
68
79
  @sftpusername = v
69
80
  when 'SFTPRemotePath'
70
- raise TypeError 'expected string' unless v.is_a? String
81
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
71
82
 
72
83
  @sftpremote_path = v
73
84
  when 'SFTPAuthMode'
85
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
86
+
74
87
  @sftpauth_mode = v
75
88
  when 'SFTPPassword'
76
- raise TypeError 'expected string' unless v.is_a? String
89
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
77
90
 
78
91
  @sftppassword = v
79
92
  when 'SFTPPrivateKey'
80
- raise TypeError 'expected string' unless v.is_a? String
93
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
81
94
 
82
95
  @sftpprivate_key = v
83
96
  when 'SFTPCustomAuth_UseKnownHostsFile'
84
97
  @sftpcustom_auth__use_known_hosts_file = v
85
98
  when 'SFTPCustomAuth_KnownHostsFile'
86
- raise TypeError 'expected string' unless v.is_a? String
99
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
87
100
 
88
101
  @sftpcustom_auth__known_hosts_file = v
89
102
  else
@@ -27,27 +27,40 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @size = 0
35
+ @measure_started = 0
36
+ @measure_completed = 0
30
37
  @unknown_json_fields = {}
31
38
  end
32
39
 
33
40
  # @param [String] json_string The complete object in JSON format
34
41
  def from_json(json_string)
35
- 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
36
43
 
37
44
  from_hash(JSON.parse(json_string))
38
45
  end
39
46
 
40
47
  # @param [Hash] obj The complete object as a Ruby hash
41
48
  def from_hash(obj)
42
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
43
50
 
44
51
  obj.each do |k, v|
45
52
  case k
46
53
  when 'Size'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
47
56
  @size = v
48
57
  when 'MeasureStarted'
58
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
49
60
  @measure_started = v
50
61
  when 'MeasureCompleted'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
51
64
  @measure_completed = v
52
65
  else
53
66
  @unknown_json_fields[k] = v
@@ -24,19 +24,23 @@ 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
  @unknown_json_fields = {}
28
32
  end
29
33
 
30
34
  # @param [String] json_string The complete object in JSON format
31
35
  def from_json(json_string)
32
- raise TypeError 'expected string' unless json_string.is_a? String
36
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
33
37
 
34
38
  from_hash(JSON.parse(json_string))
35
39
  end
36
40
 
37
41
  # @param [Hash] obj The complete object as a Ruby hash
38
42
  def from_hash(obj)
39
- raise TypeError 'expected hash' unless obj.is_a? Hash
43
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
40
44
 
41
45
  obj.each do |k, v|
42
46
  case k
@@ -30,33 +30,40 @@ module Comet
30
30
  attr_accessor :unknown_json_fields
31
31
 
32
32
  def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @latest_stable = ''
38
+ @latest_prerelease = ''
39
+ @downloads_url = ''
33
40
  @whats_new = []
34
41
  @unknown_json_fields = {}
35
42
  end
36
43
 
37
44
  # @param [String] json_string The complete object in JSON format
38
45
  def from_json(json_string)
39
- 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
40
47
 
41
48
  from_hash(JSON.parse(json_string))
42
49
  end
43
50
 
44
51
  # @param [Hash] obj The complete object as a Ruby hash
45
52
  def from_hash(obj)
46
- raise TypeError 'expected hash' unless obj.is_a? Hash
53
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
47
54
 
48
55
  obj.each do |k, v|
49
56
  case k
50
57
  when 'latest_stable'
51
- raise TypeError 'expected string' unless v.is_a? String
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
52
59
 
53
60
  @latest_stable = v
54
61
  when 'latest_prerelease'
55
- raise TypeError 'expected string' unless v.is_a? String
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
56
63
 
57
64
  @latest_prerelease = v
58
65
  when 'downloads_url'
59
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
60
67
 
61
68
  @downloads_url = v
62
69
  when 'updates_info'
@@ -65,7 +72,7 @@ module Comet
65
72
  else
66
73
  @whats_new = Array.new(v.length)
67
74
  v.each_with_index do |v1, i1|
68
- raise TypeError 'expected string' unless v1.is_a? String
75
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
69
76
 
70
77
  @whats_new[i1] = v1
71
78
  end