ruby-jss 1.2.4a4 → 1.3.3
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.
- checksums.yaml +4 -4
- data/CHANGES.md +185 -1
- data/README.md +3 -1
- data/bin/cgrouper +1 -1
- data/bin/jamfHelperBackgrounder +1 -1
- data/bin/netseg-update +1 -1
- data/data/ruby-jss.conf.example +1 -1
- data/lib/jamf.rb +1 -1
- data/lib/jamf/api/abstract_classes/advanced_search.rb +1 -1
- data/lib/jamf/api/abstract_classes/collection_resource.rb +31 -26
- data/lib/jamf/api/abstract_classes/generic_reference.rb +1 -1
- data/lib/jamf/api/abstract_classes/json_object.rb +15 -5
- data/lib/jamf/api/abstract_classes/prestage.rb +2 -2
- data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/abstract_classes/resource.rb +1 -1
- data/lib/jamf/api/abstract_classes/singleton_resource.rb +1 -1
- data/lib/jamf/api/attribute_classes/ip_address.rb +1 -1
- data/lib/jamf/api/attribute_classes/timestamp.rb +1 -1
- data/lib/jamf/api/connection.rb +106 -60
- data/lib/jamf/api/connection/api_error.rb +1 -1
- data/lib/jamf/api/connection/api_error_styleguide.rb +1 -1
- data/lib/jamf/api/connection/token.rb +80 -13
- data/lib/jamf/api/json_objects/account_prefs.rb +1 -1
- data/lib/jamf/api/json_objects/android_details.rb +1 -1
- data/lib/jamf/api/json_objects/appletv_details.rb +1 -1
- data/lib/jamf/api/json_objects/attachment.rb +1 -1
- data/lib/jamf/api/json_objects/cellular_network.rb +1 -1
- data/lib/jamf/api/json_objects/change_log_entry.rb +1 -1
- data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/country.rb +1 -1
- data/lib/jamf/api/json_objects/criterion.rb +1 -1
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +1 -1
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/extension_attribute_value.rb +1 -1
- data/lib/jamf/api/json_objects/installed_application.rb +1 -1
- data/lib/jamf/api/json_objects/installed_certificate.rb +1 -1
- data/lib/jamf/api/json_objects/installed_configuration_profile.rb +1 -1
- data/lib/jamf/api/json_objects/installed_ebook.rb +1 -1
- data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +1 -1
- data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +1 -1
- data/lib/jamf/api/json_objects/ios_details.rb +1 -1
- data/lib/jamf/api/json_objects/location.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_name.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_names.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_details.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_security.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_assignment.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_location.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_scope.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/purchasing_data.rb +1 -1
- data/lib/jamf/api/mixins/abstract.rb +1 -1
- data/lib/jamf/api/mixins/bulk_deletable.rb +1 -1
- data/lib/jamf/api/mixins/change_log.rb +1 -1
- data/lib/jamf/api/mixins/extendable.rb +1 -1
- data/lib/jamf/api/mixins/immutable.rb +1 -1
- data/lib/jamf/api/mixins/locatable.rb +1 -1
- data/lib/jamf/api/mixins/lockable.rb +1 -1
- data/lib/jamf/api/mixins/referable.rb +1 -1
- data/lib/jamf/api/mixins/searchable.rb +1 -1
- data/lib/jamf/api/mixins/uncreatable.rb +1 -1
- data/lib/jamf/api/mixins/undeletable.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/account.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/building.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/category.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/department.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +9 -2
- data/lib/jamf/api/resources/collection_resources/mobile_device.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/script.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/site.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/time_zone.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/authorization.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +1 -1
- data/lib/jamf/client.rb +1 -1
- data/lib/jamf/client/jamf_binary.rb +1 -1
- data/lib/jamf/client/jamf_helper.rb +1 -1
- data/lib/jamf/client/management_action.rb +1 -1
- data/lib/jamf/compatibility.rb +1 -1
- data/lib/jamf/composer.rb +1 -1
- data/lib/jamf/configuration.rb +8 -10
- data/lib/jamf/exceptions.rb +6 -1
- data/lib/jamf/ruby_extensions.rb +2 -1
- data/lib/jamf/ruby_extensions/array.rb +2 -2
- data/lib/jamf/ruby_extensions/array/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/array/utils.rb +4 -4
- data/lib/jamf/ruby_extensions/dig.rb +52 -0
- data/lib/jamf/ruby_extensions/filetest.rb +1 -1
- data/lib/jamf/ruby_extensions/filetest/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/hash.rb +1 -1
- data/lib/jamf/ruby_extensions/hash/backports.rb +2 -2
- data/lib/jamf/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jamf/ruby_extensions/ipaddr/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/object.rb +1 -1
- data/lib/jamf/ruby_extensions/object/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/string.rb +1 -1
- data/lib/jamf/ruby_extensions/string/backports.rb +1 -1
- data/lib/jamf/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jamf/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jamf/utility.rb +1 -1
- data/lib/jamf/validate.rb +1 -1
- data/lib/jamf/version.rb +2 -2
- data/lib/jpapi.rb +1 -1
- data/lib/jss-api.rb +1 -1
- data/lib/jss.rb +5 -2
- data/lib/jss/api_connection.rb +3 -30
- data/lib/jss/api_object.rb +16 -3
- data/lib/jss/api_object/account.rb +1 -1
- data/lib/jss/api_object/advanced_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_computer_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_mobile_device_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_user_search.rb +1 -1
- data/lib/jss/api_object/building.rb +1 -1
- data/lib/jss/api_object/categorizable.rb +1 -1
- data/lib/jss/api_object/category.rb +1 -1
- data/lib/jss/api_object/computer.rb +12 -6
- data/lib/jss/api_object/computer/application_installs.rb +1 -1
- data/lib/jss/api_object/computer_invitation.rb +1 -1
- data/lib/jss/api_object/configuration_profile.rb +4 -2
- data/lib/jss/api_object/configuration_profile/mobile_device_configuration_profile.rb +1 -1
- data/lib/jss/api_object/configuration_profile/osx_configuration_profile.rb +1 -1
- data/lib/jss/api_object/creatable.rb +1 -1
- data/lib/jss/api_object/criteriable.rb +10 -5
- data/lib/jss/api_object/criteriable/criteria.rb +26 -10
- data/lib/jss/api_object/criteriable/criterion.rb +1 -1
- data/lib/jss/api_object/department.rb +1 -1
- data/lib/jss/api_object/directory_binding.rb +273 -0
- data/lib/jss/api_object/directory_binding_type.rb +90 -0
- data/lib/jss/api_object/directory_binding_type/active_directory.rb +502 -0
- data/lib/jss/api_object/directory_binding_type/admitmac.rb +525 -0
- data/lib/jss/api_object/directory_binding_type/centrify.rb +212 -0
- data/lib/jss/api_object/directory_binding_type/open_directory.rb +178 -0
- data/lib/jss/api_object/directory_binding_type/powerbroker_identity_services.rb +73 -0
- data/lib/jss/api_object/disk_encryption_configurations.rb +114 -0
- data/lib/jss/api_object/distribution_point.rb +96 -36
- data/lib/jss/api_object/dock_item.rb +137 -0
- data/lib/jss/api_object/ebook.rb +1 -1
- data/lib/jss/api_object/extendable.rb +67 -28
- data/lib/jss/api_object/extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/computer_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/user_extension_attribute.rb +1 -1
- data/lib/jss/api_object/group.rb +1 -1
- data/lib/jss/api_object/group/computer_group.rb +1 -1
- data/lib/jss/api_object/group/mobile_device_group.rb +1 -1
- data/lib/jss/api_object/group/user_group.rb +1 -1
- data/lib/jss/api_object/ibeacon.rb +1 -1
- data/lib/jss/api_object/ldap_server.rb +1 -1
- data/lib/jss/api_object/locatable.rb +1 -1
- data/lib/jss/api_object/mac_application.rb +1 -1
- data/lib/jss/api_object/management_history.rb +23 -22
- data/lib/jss/api_object/management_history/audit_event.rb +1 -1
- data/lib/jss/api_object/management_history/casper_imaging_log.rb +1 -1
- data/lib/jss/api_object/management_history/casper_remote_log.rb +1 -1
- data/lib/jss/api_object/management_history/computer_usage_log.rb +1 -1
- data/lib/jss/api_object/management_history/ebook.rb +1 -1
- data/lib/jss/api_object/management_history/hashlike.rb +1 -1
- data/lib/jss/api_object/management_history/mac_app_store_app.rb +1 -1
- data/lib/jss/api_object/management_history/mdm_command.rb +1 -1
- data/lib/jss/api_object/management_history/mobile_device_app.rb +1 -1
- data/lib/jss/api_object/management_history/policy_log.rb +1 -1
- data/lib/jss/api_object/management_history/screen_sharing_log.rb +1 -1
- data/lib/jss/api_object/management_history/user_location_change.rb +1 -1
- data/lib/jss/api_object/matchable.rb +1 -1
- data/lib/jss/api_object/mdm.rb +1 -1
- data/lib/jss/api_object/mobile_device.rb +29 -6
- data/lib/jss/api_object/mobile_device_application.rb +13 -1
- data/lib/jss/api_object/netboot_server.rb +1 -1
- data/lib/jss/api_object/network_segment.rb +153 -59
- data/lib/jss/api_object/package.rb +106 -41
- data/lib/jss/api_object/patch_policy.rb +1 -1
- data/lib/jss/api_object/patch_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_external_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_internal_source.rb +1 -1
- data/lib/jss/api_object/patch_title.rb +1 -1
- data/lib/jss/api_object/patch_title/version.rb +1 -1
- data/lib/jss/api_object/peripheral.rb +1 -1
- data/lib/jss/api_object/peripheral_type.rb +1 -1
- data/lib/jss/api_object/policy.rb +380 -5
- data/lib/jss/api_object/printer.rb +440 -0
- data/lib/jss/api_object/purchasable.rb +1 -1
- data/lib/jss/api_object/removable_macaddr.rb +1 -1
- data/lib/jss/api_object/restricted_software.rb +1 -1
- data/lib/jss/api_object/scopable.rb +1 -1
- data/lib/jss/api_object/scopable/scope.rb +257 -37
- data/lib/jss/api_object/script.rb +1 -1
- data/lib/jss/api_object/self_servable.rb +7 -7
- data/lib/jss/api_object/self_servable/icon.rb +1 -1
- data/lib/jss/api_object/sitable.rb +6 -2
- data/lib/jss/api_object/site.rb +1 -1
- data/lib/jss/api_object/software_update_server.rb +1 -1
- data/lib/jss/api_object/updatable.rb +1 -1
- data/lib/jss/api_object/uploadable.rb +1 -1
- data/lib/jss/api_object/user.rb +5 -3
- data/lib/jss/api_object/vppable.rb +1 -1
- data/lib/jss/api_object/webhook.rb +1 -1
- data/lib/jss/client.rb +1 -1
- data/lib/jss/client/jamf_binary.rb +1 -1
- data/lib/jss/client/jamf_helper.rb +1 -1
- data/lib/jss/client/management_action.rb +1 -1
- data/lib/jss/compatibility.rb +1 -1
- data/lib/jss/composer.rb +2 -2
- data/lib/jss/configuration.rb +1 -1
- data/lib/jss/db_connection.rb +1 -1
- data/lib/jss/exceptions.rb +1 -1
- data/lib/jss/ruby_extensions.rb +1 -1
- data/lib/jss/ruby_extensions/array.rb +1 -1
- data/lib/jss/ruby_extensions/filetest.rb +1 -1
- data/lib/jss/ruby_extensions/hash.rb +1 -1
- data/lib/jss/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jss/ruby_extensions/pathname.rb +1 -1
- data/lib/jss/ruby_extensions/string.rb +1 -1
- data/lib/jss/ruby_extensions/string/backports.rb +1 -1
- data/lib/jss/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jss/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jss/ruby_extensions/time.rb +1 -1
- data/lib/jss/server.rb +1 -1
- data/lib/jss/utility.rb +9 -23
- data/lib/jss/validate.rb +1 -1
- data/lib/jss/version.rb +2 -2
- data/lib/jss/xml_workaround.rb +1 -1
- data/lib/ruby-jss.rb +1 -1
- data/test/bin/runtests +1 -1
- data/test/lib/testhelper.rb +1 -1
- data/test/lib/testhelper/auth.rb +1 -1
- data/test/lib/testhelper/patch_mgmt.rb +1 -1
- data/test/specs/api_connection_spec.rb +1 -1
- data/test/specs/patch01_source_spec.rb +1 -1
- data/test/specs/patch02_internal_source_spec.rb +1 -1
- data/test/specs/patch03_external_source_spec.rb +1 -1
- data/test/specs/patch04_titles_spec.rb +1 -1
- data/test/specs/patch05_policies_spec.rb +1 -1
- data/test/specs/patch06_cleanup_spec.rb +1 -1
- data/test/specs/policy_spec.rb +1 -1
- metadata +15 -4
data/lib/jamf/client.rb
CHANGED
data/lib/jamf/compatibility.rb
CHANGED
data/lib/jamf/composer.rb
CHANGED
data/lib/jamf/configuration.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -103,8 +103,8 @@ module Jamf
|
|
|
103
103
|
# The Pathname to the machine-wide preferences
|
|
104
104
|
GLOBAL_CONF_FILE = Pathname.new "/etc/#{CONF_FILENAME}"
|
|
105
105
|
|
|
106
|
-
# The Pathname to the user-specific preferences plist
|
|
107
|
-
USER_CONF_FILE = ENV['HOME']
|
|
106
|
+
# The Pathname to the user-specific preferences plist if there is one
|
|
107
|
+
USER_CONF_FILE = Pathname.new("#{ENV['HOME']}/.#{CONF_FILENAME}")
|
|
108
108
|
|
|
109
109
|
# The attribute keys we maintain, and the type they should be stored as
|
|
110
110
|
CONF_KEYS = {
|
|
@@ -134,7 +134,6 @@ module Jamf
|
|
|
134
134
|
# Constructor
|
|
135
135
|
#####################################
|
|
136
136
|
|
|
137
|
-
|
|
138
137
|
# Initialize!
|
|
139
138
|
#
|
|
140
139
|
def initialize
|
|
@@ -145,7 +144,6 @@ module Jamf
|
|
|
145
144
|
# Public Instance Methods
|
|
146
145
|
#####################################
|
|
147
146
|
|
|
148
|
-
|
|
149
147
|
# Clear all values
|
|
150
148
|
#
|
|
151
149
|
# @return [void]
|
|
@@ -159,7 +157,7 @@ module Jamf
|
|
|
159
157
|
# @return [void]
|
|
160
158
|
#
|
|
161
159
|
def read_global
|
|
162
|
-
read GLOBAL_CONF_FILE if GLOBAL_CONF_FILE
|
|
160
|
+
read GLOBAL_CONF_FILE if GLOBAL_CONF_FILE.file? && GLOBAL_CONF_FILE.readable?
|
|
163
161
|
end
|
|
164
162
|
|
|
165
163
|
# (Re)read the user prefs, if it exists.
|
|
@@ -167,7 +165,7 @@ module Jamf
|
|
|
167
165
|
# @return [void]
|
|
168
166
|
#
|
|
169
167
|
def read_user
|
|
170
|
-
read USER_CONF_FILE if USER_CONF_FILE
|
|
168
|
+
read USER_CONF_FILE if USER_CONF_FILE.file? && USER_CONF_FILE.readable?
|
|
171
169
|
end
|
|
172
170
|
|
|
173
171
|
# Clear the settings and reload the prefs files, or another file if provided
|
|
@@ -196,9 +194,9 @@ module Jamf
|
|
|
196
194
|
def save(file)
|
|
197
195
|
path =
|
|
198
196
|
case file
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
197
|
+
when :global then GLOBAL_CONF_FILE
|
|
198
|
+
when :user then USER_CONF_FILE
|
|
199
|
+
else Pathname.new(file)
|
|
202
200
|
end
|
|
203
201
|
|
|
204
202
|
raise Jamf::MissingDataError, "No HOME environment variable, can't write to user conf file." if path.nil?
|
data/lib/jamf/exceptions.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -82,6 +82,11 @@ module Jamf
|
|
|
82
82
|
#
|
|
83
83
|
class AuthenticationError < RuntimeError; end
|
|
84
84
|
|
|
85
|
+
# InvalidTokenError - raise this when a connection token is
|
|
86
|
+
# expired or otherwise invalid
|
|
87
|
+
#
|
|
88
|
+
class InvalidTokenError < RuntimeError; end
|
|
89
|
+
|
|
85
90
|
# ConflictError - raise this when
|
|
86
91
|
# attempts to PUT or PUSH to the API
|
|
87
92
|
# result in a 409 Conflict http error.
|
data/lib/jamf/ruby_extensions.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
### Copyright
|
|
1
|
+
### Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
###
|
|
4
4
|
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -34,3 +34,4 @@ require 'jamf/ruby_extensions/object.rb'
|
|
|
34
34
|
require 'jamf/ruby_extensions/pathname.rb'
|
|
35
35
|
require 'jamf/ruby_extensions/string.rb'
|
|
36
36
|
require 'jamf/ruby_extensions/array.rb'
|
|
37
|
+
require 'jamf/ruby_extensions/dig.rb'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
require 'jamf/ruby_extensions/array/predicates'
|
|
27
27
|
require 'jamf/ruby_extensions/array/utils'
|
|
28
28
|
|
|
29
|
-
#
|
|
29
|
+
# an array
|
|
30
30
|
class Array
|
|
31
31
|
|
|
32
32
|
include JamfRubyExtensions::Array::Predicates
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -25,6 +25,7 @@ module JamfRubyExtensions
|
|
|
25
25
|
|
|
26
26
|
module Array
|
|
27
27
|
|
|
28
|
+
# Useful monkey patches for Array
|
|
28
29
|
module Utils
|
|
29
30
|
|
|
30
31
|
# Fetch a string from an Array case-insensitively,
|
|
@@ -40,8 +41,7 @@ module JamfRubyExtensions
|
|
|
40
41
|
# nil if it doesn't exist
|
|
41
42
|
#
|
|
42
43
|
def j_ci_fetch(somestring)
|
|
43
|
-
|
|
44
|
-
each { |s| return s if s&.casecmp?(somestring) }
|
|
44
|
+
each { |s| return s if s.respond_to?(:casecmp?) && s.casecmp?(somestring) }
|
|
45
45
|
nil
|
|
46
46
|
end
|
|
47
47
|
|
|
@@ -52,7 +52,7 @@ module JamfRubyExtensions
|
|
|
52
52
|
# @return [Boolean]
|
|
53
53
|
#
|
|
54
54
|
def j_ci_include?(somestring)
|
|
55
|
-
any? { |s| s
|
|
55
|
+
any? { |s| s.respond_to?(:casecmp?) && s.casecmp?(somestring) }
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
end # module
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
5
|
+
# with the following modification; you may not use this file except in
|
|
6
|
+
# compliance with the Apache License and the following modification to it:
|
|
7
|
+
# Section 6. Trademarks. is deleted and replaced with:
|
|
8
|
+
#
|
|
9
|
+
# 6. Trademarks. This License does not grant permission to use the trade
|
|
10
|
+
# names, trademarks, service marks, or product names of the Licensor
|
|
11
|
+
# and its affiliates, except as required to comply with Section 4(c) of
|
|
12
|
+
# the License and to reproduce the content of the NOTICE file.
|
|
13
|
+
#
|
|
14
|
+
# You may obtain a copy of the Apache License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the Apache License with the above modification is
|
|
20
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
21
|
+
# KIND, either express or implied. See the Apache License for the specific
|
|
22
|
+
# language governing permissions and limitations under the Apache License.
|
|
23
|
+
|
|
24
|
+
# Gratefully borrowed from https://github.com/Invoca/ruby_dig
|
|
25
|
+
|
|
26
|
+
# modulize monkey patches
|
|
27
|
+
module RubyDig
|
|
28
|
+
|
|
29
|
+
def dig(key, *rest)
|
|
30
|
+
value = self[key]
|
|
31
|
+
if value.nil? || rest.empty?
|
|
32
|
+
value
|
|
33
|
+
elsif value.respond_to?(:dig)
|
|
34
|
+
value.dig(*rest)
|
|
35
|
+
else
|
|
36
|
+
raise TypeError, "#{value.class} does not have #dig method"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if RUBY_VERSION < '2.3'
|
|
43
|
+
|
|
44
|
+
# arrays
|
|
45
|
+
class Array; include RubyDig; end
|
|
46
|
+
|
|
47
|
+
# hashes
|
|
48
|
+
class Hash; include RubyDig; end
|
|
49
|
+
|
|
50
|
+
# ostructs
|
|
51
|
+
class OpenStruct; include RubyDig; end
|
|
52
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
# language governing permissions and limitations under the Apache License.
|
|
23
23
|
#
|
|
24
24
|
#
|
|
25
|
-
# Copyright
|
|
25
|
+
# Copyright 2020 Pixar
|
|
26
26
|
|
|
27
27
|
#
|
|
28
28
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -29,10 +29,11 @@ module JamfRubyExtensions
|
|
|
29
29
|
|
|
30
30
|
module Predicates
|
|
31
31
|
|
|
32
|
-
INTEGER_RE = /\A[0-9]+\Z/.freeze
|
|
32
|
+
INTEGER_RE = /\A-?[0-9]+\Z/.freeze
|
|
33
|
+
FLOAT_RE = /\A-?[0-9]+\.[0-9]+\Z/.freeze
|
|
33
34
|
|
|
34
|
-
# Is this string also
|
|
35
|
-
# (i.e. it consists only of numberic digits)
|
|
35
|
+
# Is this string also an integer?
|
|
36
|
+
# (i.e. it consists only of numberic digits, maybe with a dash in front)
|
|
36
37
|
#
|
|
37
38
|
# @return [Boolean]
|
|
38
39
|
#
|
|
@@ -40,6 +41,15 @@ module JamfRubyExtensions
|
|
|
40
41
|
self =~ INTEGER_RE ? true : false
|
|
41
42
|
end
|
|
42
43
|
|
|
44
|
+
# Is this string also a floar?
|
|
45
|
+
# (i.e. it consists only of numberic digits)
|
|
46
|
+
#
|
|
47
|
+
# @return [Boolean]
|
|
48
|
+
#
|
|
49
|
+
def j_float?
|
|
50
|
+
self =~ FLOAT_RE ? true : false
|
|
51
|
+
end
|
|
52
|
+
|
|
43
53
|
end # module
|
|
44
54
|
|
|
45
55
|
end # module
|
data/lib/jamf/utility.rb
CHANGED
data/lib/jamf/validate.rb
CHANGED
data/lib/jamf/version.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
### Copyright
|
|
1
|
+
### Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
###
|
|
4
4
|
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
module Jamf
|
|
28
28
|
|
|
29
29
|
### The version of the Jamf module
|
|
30
|
-
VERSION = '0.0.
|
|
30
|
+
VERSION = '0.0.1'.freeze
|
|
31
31
|
|
|
32
32
|
end # module
|
data/lib/jpapi.rb
CHANGED
data/lib/jss-api.rb
CHANGED
data/lib/jss.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
### Copyright
|
|
1
|
+
### Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
###
|
|
4
4
|
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -194,9 +194,12 @@ module JSS
|
|
|
194
194
|
class Category < JSS::APIObject; end
|
|
195
195
|
class Computer < JSS::APIObject; end
|
|
196
196
|
class Department < JSS::APIObject; end
|
|
197
|
-
class EBook < JSS::APIObject; end
|
|
198
197
|
class DistributionPoint < JSS::APIObject; end
|
|
198
|
+
class EBook < JSS::APIObject; end
|
|
199
|
+
class IBeacon < JSS::APIObject; end
|
|
200
|
+
class DockItem < JSS::APIObject; end
|
|
199
201
|
class LDAPServer < JSS::APIObject; end
|
|
202
|
+
class DirectoryBinding < JSS::APIObject; end
|
|
200
203
|
class MacApplication < JSS::APIObject; end
|
|
201
204
|
class MobileDevice < JSS::APIObject; end
|
|
202
205
|
class MobileDeviceApplication < JSS::APIObject; end
|