Skip to content

Commit 48496cc

Browse files
committed
Add Camera::ID#serialnumber QoL method
1 parent 4b44fca commit 48496cc

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

examples/list_cameras.cr

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ cameras.each do |camera|
99
puts camera.model.colorize(:green)
1010
props = {
1111
"id": camera.id,
12+
"serial number": camera.serialnumber,
1213
"port": camera.port,
1314
"driver status": abilities.status,
1415
"device type": abilities.device_type,

src/gphoto2/camera/id.cr

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ module GPhoto2
55
module ID
66
UUID_NS = UUID.new("cc4daadf-37f5-4a30-8f1b-33a49a08e012")
77

8+
# Returns the serial number of the camera if present.
9+
def serialnumber : String?
10+
self[:serialnumber]?.try(&.value?).try(&.to_s)
11+
end
12+
813
# Returns the ID of the camera.
914
#
1015
# WARNING: this ID is not guaranteed to be unique.
1116
getter id : UUID do
12-
sn = self[:serialnumber]?.try(&.value?)
13-
id = "#{model}-#{sn || port}"
14-
17+
id = "#{model}-#{serialnumber || port}"
1518
UUID.v5(id, UUID_NS)
1619
end
1720
end

0 commit comments

Comments
 (0)