module Runbook::Util::StoredPose
Constants
- FILE_ID
- FILE_PERMISSIONS
Public Class Methods
_file(book_title)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 24 def self._file(book_title) "#{Dir.tmpdir}/runbook_#{FILE_ID}_#{ENV["USER"]}_#{_slug(book_title)}.yml" end
_slug(title)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 28 def self._slug(title) title.titleize.gsub(/[\/\s]+/, "").underscore.dasherize end
delete(title)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 20 def self.delete(title) FileUtils.rm_f(_file(title)) end
load(metadata)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 6 def self.load(metadata) title = metadata[:book_title] file = _file(title) if File.exist?(file) ::YAML::load_file(file) end end
register_delete_stored_pose_hook(base)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 44 def self.register_delete_stored_pose_hook(base) base.register_hook( :delete_stored_pose_hook, :after, Runbook::Entities::Book, ) do |object, metadata| title = metadata[:book_title] Runbook::Util::StoredPose.delete(title) end end
register_save_pose_hook(base)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 32 def self.register_save_pose_hook(base) base.register_hook( :save_pose_hook, :before, Object, ) do |object, metadata| position = metadata[:position] title = metadata[:book_title] Runbook::Util::StoredPose.save(position, book_title: title) end end
save(repo, book_title:)
click to toggle source
# File lib/runbook/util/stored_pose.rb, line 14 def self.save(repo, book_title:) File.open(_file(book_title), 'w', FILE_PERMISSIONS) do |f| f.write(repo.to_yaml) end end