Class: JSS::Peripheral
- Includes:
- Creatable, Locatable, Purchasable, Updatable, Uploadable
- Defined in:
- lib/jss/api_object/peripheral.rb,
lib/jss.rb
Overview
A peripheral in the JSS
Constant Summary collapse
- RSRC_BASE =
The base for REST resources of this class
"peripherals"
- RSRC_LIST_KEY =
the hash key used for the JSON list output of all objects in the JSS
:peripherals
- RSRC_OBJECT_KEY =
The hash key used for the JSON object output. It’s also used in various error messages
:peripheral
- VALID_DATA_KEYS =
these keys, as well as :id and :name, are present in valid API JSON data for this class
[:type, :bar_code_1, :computer_id ]
Instance Attribute Summary collapse
- #applecare_id ⇒ String included from Purchasable
-
#bar_code_1 ⇒ String
(also: #barcode_1, #barcode1)
The “bar code 1” value.
-
#bar_code_2 ⇒ String
(also: #barcode_2, #barcode2)
The “bar code 2” value.
- #building ⇒ String included from Locatable
-
#computer_id ⇒ Integer
readonly
The id number of the computer to which this periph is connected.
- #department ⇒ String included from Locatable
- #email_address ⇒ String included from Locatable
- #is_leased ⇒ Boolean (also: #leased?) included from Purchasable
- #is_purchased ⇒ Boolean (also: #purchased?) included from Purchasable
- #lease_expires ⇒ Time included from Purchasable
- #life_expectancy ⇒ Integer included from Purchasable
-
#need_to_update ⇒ Boolean
included
from Updatable
readonly
Do we have unsaved changes?.
- #phone ⇒ String included from Locatable
- #po_date ⇒ Time included from Purchasable
- #po_number ⇒ String included from Purchasable
- #position ⇒ String included from Locatable
- #purchase_price ⇒ Float included from Purchasable
- #purchasing_account ⇒ String included from Purchasable
- #purchasing_contact ⇒ String included from Purchasable
- #real_name ⇒ String included from Locatable
- #room ⇒ String included from Locatable
-
#type ⇒ String
readonly
The type of peripheral.
- #username ⇒ String (also: #user) included from Locatable
- #vendor ⇒ String included from Purchasable
- #warranty_expires ⇒ Time included from Purchasable
Instance Method Summary collapse
-
#associate(computer) ⇒ void
(also: #assign_to)
Associate this peripheral with a computer.
-
#clear_location ⇒ void
included
from Locatable
Clear all location data.
-
#clone(new_name) ⇒ APIObject
included
from Creatable
make a clone of this API object, with a new name.
-
#create ⇒ Object
reset the restrsrc after creation.
-
#disassociate ⇒ void
(also: #unassign)
Disassociate this peripheral from any computer.
-
#fields ⇒ Hash
The field values of the peripheral Each key is the fields name, as a String and the value is the fields value, also as a String.
-
#has_location? ⇒ Boolean
included
from Locatable
Does this item have location data?.
-
#has_purchasing? ⇒ Boolean
included
from Purchasable
Does this item have any purchasing info?.
-
#initialize(args = {}) ⇒ Peripheral
constructor
A new instance of Peripheral.
-
#location ⇒ Hash<String>
included
from Locatable
All the location data in a Hash, as it comes from the API.
-
#location_xml ⇒ REXML::Element
included
from Locatable
private
Return a REXML <location> element to be included in the rest_xml of objects that have a Location subset.
-
#name=(newname) ⇒ Object
periphs don’t have names.
-
#parse_location ⇒ void
included
from Locatable
Call this during initialization of objects that have a Location subset and the location attributes will be populated (as primary attributes) from @init_data.
-
#parse_purchasing ⇒ Object
included
from Purchasable
private
Call this during initialization of objects that have a Purchasing subset and the purchasing attribute will be populated from @init_data.
-
#purchasing ⇒ Hash<String>
included
from Purchasable
All the purchasing data in a Hash, as it comes from the API.
-
#purchasing_xml ⇒ REXML::Element
included
from Purchasable
private
A <purchasing> element to be included in the rest_xml of objects that mix-in this module.
-
#set_field(field, value) ⇒ void
Set the value of a field.
-
#update ⇒ Boolean
included
from Updatable
Save changes to the JSS.
-
#upload(type, local_file) ⇒ String
included
from Uploadable
Upload a file to the JSS via the REST Resource of the object to which this module is mixed in.
Constructor Details
#initialize(args = {}) ⇒ Peripheral
Returns a new instance of Peripheral.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/jss/api_object/peripheral.rb', line 120 def initialize (args = {}) ### periphs don't really have names, and the JSS module list method for ### periphs gives the computer_id as the name, so give it a temp ### name of "-1", which shouldn't ever exist in the JSS args[:name] ||= "-1" super if args[:id] == :new raise JSS::InvalidDataError, "New Peripherals must have a :type, which must be one of those defined in the JSS." unless args[:type] @type = args[:type] raise JSS::InvalidDataError, "No peripheral type '#{@type}' in the JSS" unless JSS::PeripheralType.all_names(:refresh).include? @type @fields = {} @rest_rsrc = 'peripherals/id/-1' @site = "None" return end @type = @init_data[:general][:type] @site = JSS::APIObject.get_name(@init_data[:general][:site]) @bar_code_1 = @init_data[:general][:bar_code_1] @bar_code_2 = @init_data[:general][:bar_code_2] @computer_id = @init_data[:general][:computer_id] ### fill in the fields @fields = {} @init_data[:general][:fields].each{|f| @fields[f[:name]] = f[:value] } ### get the field defs for this PeriphType, omitting the leading nil @field_defs ||= JSS::PeripheralType.new(:name => @type).fields.compact end |
Instance Attribute Details
#applecare_id ⇒ String Originally defined in module Purchasable
#bar_code_1 ⇒ String Also known as: barcode_1, barcode1
Returns the “bar code 1” value.
103 104 105 |
# File 'lib/jss/api_object/peripheral.rb', line 103 def @bar_code_1 end |
#bar_code_2 ⇒ String Also known as: barcode_2, barcode2
Returns the “bar code 2” value.
107 108 109 |
# File 'lib/jss/api_object/peripheral.rb', line 107 def @bar_code_2 end |
#computer_id ⇒ Integer (readonly)
Returns the id number of the computer to which this periph is connected.
111 112 113 |
# File 'lib/jss/api_object/peripheral.rb', line 111 def computer_id @computer_id end |
#is_leased ⇒ Boolean Also known as: leased? Originally defined in module Purchasable
#is_purchased ⇒ Boolean Also known as: purchased? Originally defined in module Purchasable
#lease_expires ⇒ Time Originally defined in module Purchasable
#life_expectancy ⇒ Integer Originally defined in module Purchasable
#need_to_update ⇒ Boolean (readonly) Originally defined in module Updatable
Returns do we have unsaved changes?.
#po_date ⇒ Time Originally defined in module Purchasable
#po_number ⇒ String Originally defined in module Purchasable
#purchase_price ⇒ Float Originally defined in module Purchasable
#purchasing_account ⇒ String Originally defined in module Purchasable
#purchasing_contact ⇒ String Originally defined in module Purchasable
#type ⇒ String (readonly)
Returns the type of peripheral.
100 101 102 |
# File 'lib/jss/api_object/peripheral.rb', line 100 def type @type end |
#vendor ⇒ String Originally defined in module Purchasable
#warranty_expires ⇒ Time Originally defined in module Purchasable
Instance Method Details
#associate(computer) ⇒ void Also known as: assign_to
This method returns an undefined value.
Associate this peripheral with a computer.
232 233 234 235 236 237 238 239 240 241 |
# File 'lib/jss/api_object/peripheral.rb', line 232 def associate(computer) if computer =~ /^d+$/ raise JSS::NoSuchItemError, "No computer in the JSS with id #{computer}" unless JSS::Computer.all_ids.include? computer @computer_id = computer else raise JSS::NoSuchItemError, "No computer in the JSS with name #{computer}" unless JSS::Computer.all_names.include? computer @computer_id = JSS::Computer.map_all_ids_to(:name).invert[computer] end @need_to_update = true end |
#clear_location ⇒ void Originally defined in module Locatable
This method returns an undefined value.
Clear all location data
#clone(new_name) ⇒ APIObject Originally defined in module Creatable
make a clone of this API object, with a new name. The class must be creatable
#create ⇒ Object
reset the restrsrc after creation
161 162 163 164 165 |
# File 'lib/jss/api_object/peripheral.rb', line 161 def create super @rest_rsrc = "peripherals/id/#{@id}" @id end |
#disassociate ⇒ void Also known as: unassign
This method returns an undefined value.
Disassociate this peripheral from any computer.
This seems to have no effect in the JSS, the computer/user/location data always shows the most recent.
252 253 254 255 |
# File 'lib/jss/api_object/peripheral.rb', line 252 def disassociate @computer_id = nil @need_to_update = true end |
#fields ⇒ Hash
Returns the field values of the peripheral Each key is the fields name, as a String and the value is the fields value, also as a String.
180 181 182 |
# File 'lib/jss/api_object/peripheral.rb', line 180 def fields @fields end |
#has_location? ⇒ Boolean Originally defined in module Locatable
Returns Does this item have location data?.
#has_purchasing? ⇒ Boolean Originally defined in module Purchasable
Returns does this item have any purchasing info?.
#location ⇒ Hash<String> Originally defined in module Locatable
All the location data in a Hash, as it comes from the API.
The reason it isn’t stored this way is to prevent editing of the hash directly.
#location_xml ⇒ REXML::Element Originally defined in module Locatable
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return a REXML <location> element to be included in the rest_xml of objects that have a Location subset
#name=(newname) ⇒ Object
periphs don’t have names
170 171 172 |
# File 'lib/jss/api_object/peripheral.rb', line 170 def name= (newname) raise JSS::UnsupportedError, "Peripherals don't have names." end |
#parse_location ⇒ void Originally defined in module Locatable
This method returns an undefined value.
Call this during initialization of objects that have a Location subset and the location attributes will be populated (as primary attributes) from @init_data
#parse_purchasing ⇒ Object Originally defined in module Purchasable
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Call this during initialization of objects that have a Purchasing subset and the purchasing attribute will be populated from @init_data
#purchasing ⇒ Hash<String> Originally defined in module Purchasable
All the purchasing data in a Hash, as it comes from the API.
The reason it isn’t stored this way is to prevent editing of the hash directly.
#purchasing_xml ⇒ REXML::Element Originally defined in module Purchasable
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns A <purchasing> element to be included in the rest_xml of objects that mix-in this module.
#set_field(field, value) ⇒ void
This method returns an undefined value.
Set the value of a field. It will be checked to ensure validity.
193 194 195 196 197 |
# File 'lib/jss/api_object/peripheral.rb', line 193 def set_field(field, value) check_field(field, value) @fields[field] = value @need_to_update = true end |
#update ⇒ Boolean Originally defined in module Updatable
Save changes to the JSS
#upload(type, local_file) ⇒ String Originally defined in module Uploadable
Upload a file to the JSS via the REST Resource of the object to which this module is mixed in.