comet_backup_ruby_sdk 0.2.0 → 1.2.0

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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -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 +562 -254
  8. data/lib/comet/definitions.rb +19 -4
  9. data/lib/comet/models/add_bucket_response_message.rb +15 -5
  10. data/lib/comet/models/admin_account_properties_response.rb +17 -2
  11. data/lib/comet/models/admin_email_options.rb +84 -0
  12. data/lib/comet/models/admin_resource_response.rb +13 -4
  13. data/lib/comet/models/admin_security_options.rb +18 -5
  14. data/lib/comet/models/admin_u2fregistration.rb +11 -3
  15. data/lib/comet/models/admin_user_permissions.rb +6 -2
  16. data/lib/comet/models/available_download.rb +10 -4
  17. data/lib/comet/models/azure_destination_location.rb +16 -7
  18. data/lib/comet/models/b2destination_location.rb +17 -6
  19. data/lib/comet/models/b2storage_extra_info.rb +6 -2
  20. data/lib/comet/models/b2transaction_totals.rb +15 -2
  21. data/lib/comet/models/b2virtual_storage_role_settings.rb +93 -0
  22. data/lib/comet/models/backup_job_advanced_options.rb +12 -2
  23. data/lib/comet/models/backup_job_detail.rb +53 -10
  24. data/lib/comet/models/backup_job_progress.rb +21 -2
  25. data/lib/comet/models/backup_rule_config.rb +43 -7
  26. data/lib/comet/models/backup_rule_event_triggers.rb +6 -2
  27. data/lib/comet/models/branding_options.rb +59 -25
  28. data/lib/comet/models/branding_properties.rb +51 -21
  29. data/lib/comet/models/browse_disk_drives_response.rb +11 -3
  30. data/lib/comet/models/browse_edbresponse.rb +11 -3
  31. data/lib/comet/models/browse_hvresponse.rb +11 -3
  32. data/lib/comet/models/browse_vssresponse.rb +11 -3
  33. data/lib/comet/models/bucket_properties.rb +24 -3
  34. data/lib/comet/models/bucket_usage_info.rb +8 -2
  35. data/lib/comet/models/comet_apiresponse_message.rb +11 -3
  36. data/lib/comet/models/comet_destination_location.rb +12 -5
  37. data/lib/comet/models/constellation_check_report.rb +12 -2
  38. data/lib/comet/models/constellation_stats.rb +18 -2
  39. data/lib/comet/models/constellation_status_apiresponse.rb +9 -4
  40. data/lib/comet/models/content_measurement.rb +12 -2
  41. data/lib/comet/models/content_measurement_component.rb +10 -3
  42. data/lib/comet/models/create_group_policy_response.rb +13 -4
  43. data/lib/comet/models/default_email_report_policy.rb +6 -2
  44. data/lib/comet/models/destination_config.rb +123 -32
  45. data/lib/comet/models/destination_location.rb +78 -28
  46. data/lib/comet/models/destination_statistics.rb +16 -3
  47. data/lib/comet/models/device_config.rb +9 -3
  48. data/lib/comet/models/disk_drive.rb +34 -7
  49. data/lib/comet/models/dispatcher_admin_sources_response.rb +12 -4
  50. data/lib/comet/models/dispatcher_stored_objects_response.rb +11 -3
  51. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +11 -3
  52. data/lib/comet/models/edbfile_info.rb +12 -5
  53. data/lib/comet/models/email_options.rb +21 -8
  54. data/lib/comet/models/email_report_config.rb +10 -2
  55. data/lib/comet/models/email_report_generated_preview.rb +17 -6
  56. data/lib/comet/models/external_ldapauthentication_source_settings.rb +102 -0
  57. data/lib/comet/models/extra_file_exclusion.rb +11 -3
  58. data/lib/comet/models/ftpdestination_location.rb +23 -6
  59. data/lib/comet/models/get_group_policy_response.rb +14 -4
  60. data/lib/comet/models/get_profile_and_hash_response_message.rb +14 -4
  61. data/lib/comet/models/get_profile_hash_response_message.rb +13 -4
  62. data/lib/comet/models/group_policy.rb +18 -3
  63. data/lib/comet/models/hyper_vmachine_info.rb +10 -4
  64. data/lib/comet/models/install_creds.rb +99 -0
  65. data/lib/comet/models/install_token.rb +117 -0
  66. data/lib/comet/models/install_token_response.rb +92 -0
  67. data/lib/comet/models/job_entry.rb +93 -0
  68. data/lib/comet/models/live_user_connection.rb +20 -7
  69. data/lib/comet/models/local_destination_location.rb +15 -5
  70. data/lib/comet/models/mac_oscode_sign_properties.rb +21 -6
  71. data/lib/comet/models/mongo_dbconnection.rb +33 -14
  72. data/lib/comet/models/new_bucket_detail.rb +10 -4
  73. data/lib/comet/models/news_entry.rb +20 -3
  74. data/lib/comet/models/organization.rb +145 -0
  75. data/lib/comet/models/organization_response.rb +101 -0
  76. data/lib/comet/models/osinfo.rb +12 -5
  77. data/lib/comet/models/partition.rb +32 -8
  78. data/lib/comet/models/private_branding_properties.rb +39 -15
  79. data/lib/comet/models/protected_item_engine_type_policy.rb +7 -3
  80. data/lib/comet/models/public_branding_properties.rb +18 -8
  81. data/lib/comet/models/remote_server_address.rb +19 -7
  82. data/lib/comet/models/remote_storage_option.rb +28 -7
  83. data/lib/comet/models/replicator_state_apiresponse.rb +40 -4
  84. data/lib/comet/models/request_storage_vault_response_message.rb +13 -4
  85. data/lib/comet/models/restore_job_advanced_options.rb +15 -4
  86. data/lib/comet/models/retention_policy.rb +9 -2
  87. data/lib/comet/models/retention_range.rb +30 -2
  88. data/lib/comet/models/s3destination_location.rb +16 -7
  89. data/lib/comet/models/schedule_config.rb +15 -2
  90. data/lib/comet/models/search_clause.rb +14 -6
  91. data/lib/comet/models/server_config_options_branding_fragment.rb +7 -2
  92. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +7 -2
  93. data/lib/comet/models/server_meta_version_info.rb +45 -7
  94. data/lib/comet/models/session_key_regenerated_response.rb +15 -5
  95. data/lib/comet/models/sftpdestination_location.rb +21 -8
  96. data/lib/comet/models/size_measurement.rb +15 -2
  97. data/lib/comet/models/software_build_role_options.rb +6 -2
  98. data/lib/comet/models/software_update_news_response.rb +13 -6
  99. data/lib/comet/models/source_basic_info.rb +11 -3
  100. data/lib/comet/models/source_config.rb +38 -8
  101. data/lib/comet/models/source_statistics.rb +7 -2
  102. data/lib/comet/models/spanned_destination_location.rb +6 -2
  103. data/lib/comet/models/spanned_storage_extra_info.rb +6 -2
  104. data/lib/comet/models/sshconnection.rb +19 -7
  105. data/lib/comet/models/stat_result.rb +18 -2
  106. data/lib/comet/models/storage_free_space_info.rb +14 -2
  107. data/lib/comet/models/storage_vault_provider_policy.rb +8 -2
  108. data/lib/comet/models/stored_object.rb +27 -5
  109. data/lib/comet/models/streamable_event.rb +18 -2
  110. data/lib/comet/models/swift_destination_location.rb +32 -15
  111. data/lib/comet/models/test_response.rb +11 -3
  112. data/lib/comet/models/totp_regenerated_response.rb +17 -6
  113. data/lib/comet/models/u2fregister_request.rb +10 -4
  114. data/lib/comet/models/u2fregistered_key.rb +12 -5
  115. data/lib/comet/models/u2fregistration_challenge_response.rb +15 -5
  116. data/lib/comet/models/u2fsign_request.rb +12 -5
  117. data/lib/comet/models/u2fsign_response.rb +14 -6
  118. data/lib/comet/models/uninstall_config.rb +6 -2
  119. data/lib/comet/models/update_campaign_device_status.rb +9 -2
  120. data/lib/comet/models/update_campaign_options.rb +6 -2
  121. data/lib/comet/models/update_campaign_properties.rb +11 -3
  122. data/lib/comet/models/update_campaign_status.rb +11 -3
  123. data/lib/comet/models/update_campaign_status_device_entry.rb +13 -4
  124. data/lib/comet/models/user_custom_email_settings.rb +6 -2
  125. data/lib/comet/models/user_on_server.rb +11 -3
  126. data/lib/comet/models/user_policy.rb +22 -2
  127. data/lib/comet/models/user_profile_config.rb +52 -12
  128. data/lib/comet/models/user_profile_fragment.rb +8 -3
  129. data/lib/comet/models/vault_snapshot.rb +13 -4
  130. data/lib/comet/models/vsscomponent.rb +12 -5
  131. data/lib/comet/models/vsswriter_info.rb +8 -3
  132. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +93 -0
  133. data/lib/comet/models/web_interface_branding_properties.rb +14 -6
  134. data/lib/comet/models/webhook_option.rb +10 -3
  135. data/lib/comet/models/win_smbauth.rb +15 -5
  136. data/lib/comet/models/windows_code_sign_properties.rb +26 -9
  137. data/lib/comet_backup_ruby_sdk.rb +10 -0
  138. metadata +15 -2
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2020 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # InstallTokenResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class InstallTokenResponse
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
22
+
23
+ # @type [Comet::InstallToken] install_token
24
+ attr_accessor :install_token
25
+
26
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
27
+ attr_accessor :unknown_json_fields
28
+
29
+ def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @status = 0
35
+ @message = ''
36
+ @install_token = Comet::InstallToken.new
37
+ @unknown_json_fields = {}
38
+ end
39
+
40
+ # @param [String] json_string The complete object in JSON format
41
+ def from_json(json_string)
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
+
44
+ from_hash(JSON.parse(json_string))
45
+ end
46
+
47
+ # @param [Hash] obj The complete object as a Ruby hash
48
+ def from_hash(obj)
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
+
51
+ obj.each do |k, v|
52
+ case k
53
+ when 'Status'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
56
+ @status = v
57
+ when 'Message'
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @message = v
61
+ when 'InstallToken'
62
+ @install_token = Comet::InstallToken.new
63
+ @install_token.from_hash(v)
64
+ else
65
+ @unknown_json_fields[k] = v
66
+ end
67
+ end
68
+ end
69
+
70
+ # @return [Hash] The complete object as a Ruby hash
71
+ def to_hash
72
+ ret = {}
73
+ ret['Status'] = @status
74
+ ret['Message'] = @message
75
+ ret['InstallToken'] = @install_token
76
+ @unknown_json_fields.each do |k, v|
77
+ ret[k] = v
78
+ end
79
+ ret
80
+ end
81
+
82
+ # @return [Hash] The complete object as a Ruby hash
83
+ def to_h
84
+ to_hash
85
+ end
86
+
87
+ # @return [String] The complete object as a JSON string
88
+ def to_json(options = {})
89
+ to_hash.to_json(options)
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2020 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # JobEntry is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class JobEntry
16
+
17
+ # @type [Number] time
18
+ attr_accessor :time
19
+
20
+ # @type [String] severity
21
+ attr_accessor :severity
22
+
23
+ # @type [String] message
24
+ attr_accessor :message
25
+
26
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
27
+ attr_accessor :unknown_json_fields
28
+
29
+ def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @time = 0
35
+ @severity = ''
36
+ @message = ''
37
+ @unknown_json_fields = {}
38
+ end
39
+
40
+ # @param [String] json_string The complete object in JSON format
41
+ def from_json(json_string)
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
+
44
+ from_hash(JSON.parse(json_string))
45
+ end
46
+
47
+ # @param [Hash] obj The complete object as a Ruby hash
48
+ def from_hash(obj)
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
+
51
+ obj.each do |k, v|
52
+ case k
53
+ when 'Time'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
56
+ @time = v
57
+ when 'Severity'
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @severity = v
61
+ when 'Message'
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @message = v
65
+ else
66
+ @unknown_json_fields[k] = v
67
+ end
68
+ end
69
+ end
70
+
71
+ # @return [Hash] The complete object as a Ruby hash
72
+ def to_hash
73
+ ret = {}
74
+ ret['Time'] = @time
75
+ ret['Severity'] = @severity
76
+ ret['Message'] = @message
77
+ @unknown_json_fields.each do |k, v|
78
+ ret[k] = v
79
+ end
80
+ ret
81
+ end
82
+
83
+ # @return [Hash] The complete object as a Ruby hash
84
+ def to_h
85
+ to_hash
86
+ end
87
+
88
+ # @return [String] The complete object as a JSON string
89
+ def to_json(options = {})
90
+ to_hash.to_json(options)
91
+ end
92
+ end
93
+ end
@@ -42,46 +42,59 @@ module Comet
42
42
  attr_accessor :unknown_json_fields
43
43
 
44
44
  def initialize
45
+ clear
46
+ end
47
+
48
+ def clear
49
+ @username = ''
50
+ @device_id = ''
51
+ @reported_version = ''
52
+ @reported_platform = ''
53
+ @reported_platform_version = Comet::OSInfo.new
54
+ @ipaddress = ''
55
+ @connection_time = 0
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 'Username'
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
  @username = v
65
76
  when 'DeviceID'
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
  @device_id = v
69
80
  when 'ReportedVersion'
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
  @reported_version = v
73
84
  when 'ReportedPlatform'
74
- raise TypeError 'expected string' unless v.is_a? String
85
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
75
86
 
76
87
  @reported_platform = v
77
88
  when 'ReportedPlatformVersion'
78
89
  @reported_platform_version = Comet::OSInfo.new
79
90
  @reported_platform_version.from_hash(v)
80
91
  when 'IPAddress'
81
- raise TypeError 'expected string' unless v.is_a? String
92
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
82
93
 
83
94
  @ipaddress = v
84
95
  when 'ConnectionTime'
96
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
97
+
85
98
  @connection_time = v
86
99
  when 'AllowsFilenames'
87
100
  @allows_filenames = v
@@ -30,35 +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
+ @localcopy_path = ''
38
+ @localcopy_win_smbusername = ''
39
+ @localcopy_win_smbpassword = ''
40
+ @localcopy_win_smbpassword_format = 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 'LocalcopyPath'
50
- raise TypeError 'expected string' unless v.is_a? String
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
51
59
 
52
60
  @localcopy_path = v
53
61
  when 'LocalcopyWinSMBUsername'
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
  @localcopy_win_smbusername = v
57
65
  when 'LocalcopyWinSMBPassword'
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
  @localcopy_win_smbpassword = v
61
69
  when 'LocalcopyWinSMBPasswordFormat'
70
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
71
+
62
72
  @localcopy_win_smbpassword_format = v
63
73
  else
64
74
  @unknown_json_fields[k] = v
@@ -39,44 +39,59 @@ module Comet
39
39
  attr_accessor :unknown_json_fields
40
40
 
41
41
  def initialize
42
+ clear
43
+ end
44
+
45
+ def clear
46
+ @level = 0
47
+ @sshserver = Comet::SSHConnection.new
48
+ @certificate_name = ''
49
+ @app_certificate_name = ''
50
+ @apple_id = ''
51
+ @apple_idpass = ''
52
+ @apple_idpass_format = 0
42
53
  @unknown_json_fields = {}
43
54
  end
44
55
 
45
56
  # @param [String] json_string The complete object in JSON format
46
57
  def from_json(json_string)
47
- raise TypeError 'expected string' unless json_string.is_a? String
58
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
48
59
 
49
60
  from_hash(JSON.parse(json_string))
50
61
  end
51
62
 
52
63
  # @param [Hash] obj The complete object as a Ruby hash
53
64
  def from_hash(obj)
54
- raise TypeError 'expected hash' unless obj.is_a? Hash
65
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
55
66
 
56
67
  obj.each do |k, v|
57
68
  case k
58
69
  when 'Level'
70
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
71
+
59
72
  @level = v
60
73
  when 'SSHServer'
61
74
  @sshserver = Comet::SSHConnection.new
62
75
  @sshserver.from_hash(v)
63
76
  when 'CertificateName'
64
- raise TypeError 'expected string' unless v.is_a? String
77
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
65
78
 
66
79
  @certificate_name = v
67
80
  when 'AppCertificateName'
68
- raise TypeError 'expected string' unless v.is_a? String
81
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
69
82
 
70
83
  @app_certificate_name = v
71
84
  when 'AppleID'
72
- raise TypeError 'expected string' unless v.is_a? String
85
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
73
86
 
74
87
  @apple_id = v
75
88
  when 'AppleIDPass'
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
  @apple_idpass = v
79
92
  when 'AppleIDPassFormat'
93
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
94
+
80
95
  @apple_idpass_format = v
81
96
  else
82
97
  @unknown_json_fields[k] = v
@@ -75,57 +75,76 @@ module Comet
75
75
  attr_accessor :unknown_json_fields
76
76
 
77
77
  def initialize
78
+ clear
79
+ end
80
+
81
+ def clear
82
+ @server = ''
83
+ @port = 0
84
+ @username = ''
85
+ @password = ''
86
+ @authentication_db = ''
87
+ @mongo_shell_path = ''
88
+ @mongodump_path = ''
89
+ @read_preference = ''
90
+ @replica_name = ''
78
91
  @replica_members = []
92
+ @client_sslpempath = ''
93
+ @server_sslpempath = ''
94
+ @sslclient_key_password = ''
95
+ @sshconnection = Comet::SSHConnection.new
79
96
  @unknown_json_fields = {}
80
97
  end
81
98
 
82
99
  # @param [String] json_string The complete object in JSON format
83
100
  def from_json(json_string)
84
- raise TypeError 'expected string' unless json_string.is_a? String
101
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
85
102
 
86
103
  from_hash(JSON.parse(json_string))
87
104
  end
88
105
 
89
106
  # @param [Hash] obj The complete object as a Ruby hash
90
107
  def from_hash(obj)
91
- raise TypeError 'expected hash' unless obj.is_a? Hash
108
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
92
109
 
93
110
  obj.each do |k, v|
94
111
  case k
95
112
  when 'Server'
96
- raise TypeError 'expected string' unless v.is_a? String
113
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
97
114
 
98
115
  @server = v
99
116
  when 'Port'
117
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
118
+
100
119
  @port = v
101
120
  when 'Username'
102
- raise TypeError 'expected string' unless v.is_a? String
121
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
103
122
 
104
123
  @username = v
105
124
  when 'Password'
106
- raise TypeError 'expected string' unless v.is_a? String
125
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
107
126
 
108
127
  @password = v
109
128
  when 'AuthenticationDB'
110
- raise TypeError 'expected string' unless v.is_a? String
129
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
111
130
 
112
131
  @authentication_db = v
113
132
  when 'MongoShellPath'
114
- raise TypeError 'expected string' unless v.is_a? String
133
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
115
134
 
116
135
  @mongo_shell_path = v
117
136
  when 'MongodumpPath'
118
- raise TypeError 'expected string' unless v.is_a? String
137
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
119
138
 
120
139
  @mongodump_path = v
121
140
  when 'ReadPreference'
122
- raise TypeError 'expected string' unless v.is_a? String
141
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
123
142
 
124
143
  @read_preference = v
125
144
  when 'UseReplica'
126
145
  @use_replica = v
127
146
  when 'ReplicaName'
128
- raise TypeError 'expected string' unless v.is_a? String
147
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
129
148
 
130
149
  @replica_name = v
131
150
  when 'ReplicaMembers'
@@ -134,7 +153,7 @@ module Comet
134
153
  else
135
154
  @replica_members = Array.new(v.length)
136
155
  v.each_with_index do |v1, i1|
137
- raise TypeError 'expected string' unless v1.is_a? String
156
+ raise TypeError "'v1' expected String, got #{v1.class}" unless v1.is_a? String
138
157
 
139
158
  @replica_members[i1] = v1
140
159
  end
@@ -142,15 +161,15 @@ module Comet
142
161
  when 'UseSSL'
143
162
  @use_ssl = v
144
163
  when 'ClientSSLPEMPath'
145
- raise TypeError 'expected string' unless v.is_a? String
164
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
146
165
 
147
166
  @client_sslpempath = v
148
167
  when 'ServerSSLPEMPath'
149
- raise TypeError 'expected string' unless v.is_a? String
168
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
150
169
 
151
170
  @server_sslpempath = v
152
171
  when 'SSLClientKeyPassword'
153
- raise TypeError 'expected string' unless v.is_a? String
172
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
154
173
 
155
174
  @sslclient_key_password = v
156
175
  when 'AllowInvalidCertificate'