class Desktop::OSX
Attributes
cached_image_path[R]
desktop_image_path[R]
skip_database[R]
skip_reload[R]
Public Class Methods
chmod_command()
click to toggle source
# File lib/desktop/osx/osx.rb, line 20 def self.chmod_command self.new.chmod_command end
chown_command()
click to toggle source
# File lib/desktop/osx/osx.rb, line 16 def self.chown_command self.new.chown_command end
desktop_image=(image)
click to toggle source
# File lib/desktop/osx/osx.rb, line 8 def self.desktop_image=(image) self.new.desktop_image = image end
new(options = nil)
click to toggle source
# File lib/desktop/osx/osx.rb, line 24 def initialize(options = nil) options ||= {} @skip_reload = options[:skip_reload] @skip_database = options[:skip_database] @desktop_image_path = \ options[:desktop_image_path] || default_desktop_image_path @cached_image_path = \ options[:cached_image_path] || default_cached_image_path end
update_desktop_image_permissions()
click to toggle source
# File lib/desktop/osx/osx.rb, line 12 def self.update_desktop_image_permissions self.new.update_desktop_image_permissions end
Public Instance Methods
chmod_command()
click to toggle source
# File lib/desktop/osx/osx.rb, line 56 def chmod_command [' -h ', ' '].map do |option| "sudo chmod#{option}664 #{desktop_image_path}" end.join(" && ") end
chown_command()
click to toggle source
# File lib/desktop/osx/osx.rb, line 50 def chown_command [' -h ', ' '].map do |option| "sudo chown#{option}$('whoami'):staff #{desktop_image_path}" end.join(" && ") end
desktop_image=(image)
click to toggle source
# File lib/desktop/osx/osx.rb, line 34 def desktop_image=(image) write_default_desktop image clear_custom_desktop_image unless skip_database touch_desktop_image remove_cached_image reload_desktop unless skip_reload rescue Errno::EACCES => e raise DesktopImagePermissionsError.new(e) rescue Errno::ENOENT => e raise DesktopImageMissingError.new(e) end
update_desktop_image_permissions()
click to toggle source
# File lib/desktop/osx/osx.rb, line 46 def update_desktop_image_permissions system(chown_command) && system(chmod_command) end
Private Instance Methods
clear_custom_desktop_image()
click to toggle source
# File lib/desktop/osx/osx.rb, line 75 def clear_custom_desktop_image db = Database.new db.clear_desktop_image db.close end
default_cached_image_path()
click to toggle source
# File lib/desktop/osx/osx.rb, line 95 def default_cached_image_path '/Library/Caches/com.apple.desktop.admin.png' end
default_desktop_image_path()
click to toggle source
# File lib/desktop/osx/osx.rb, line 99 def default_desktop_image_path '/System/Library/CoreServices/DefaultDesktop.jpg' end
reload_desktop()
click to toggle source
# File lib/desktop/osx/osx.rb, line 91 def reload_desktop system 'killall Dock' end
remove_cached_image()
click to toggle source
# File lib/desktop/osx/osx.rb, line 87 def remove_cached_image system "rm #{cached_image_path} 2>/dev/null" end
touch_desktop_image()
click to toggle source
# File lib/desktop/osx/osx.rb, line 81 def touch_desktop_image unless system("touch -h #{desktop_image_path} 2>/dev/null") raise Errno::EACCES end end
write_default_desktop(image)
click to toggle source
# File lib/desktop/osx/osx.rb, line 69 def write_default_desktop(image) File.open(desktop_image_path, 'w') do |desktop| desktop.write image.data end end