Module: Runbook::Util::StoredPose
- Defined in:
- lib/runbook/util/stored_pose.rb
Constant Summary collapse
- FILE_ID =
"current_position"
- FILE_PERMISSIONS =
0600
Class Method Summary collapse
- ._file(book_title) ⇒ Object
- ._slug(title) ⇒ Object
- .delete(title) ⇒ Object
- .load(metadata) ⇒ Object
- .register_delete_stored_pose_hook(base) ⇒ Object
- .register_save_pose_hook(base) ⇒ Object
- .save(repo, book_title:) ⇒ Object
Class Method Details
._file(book_title) ⇒ Object
24 25 26 |
# 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) ⇒ Object
28 29 30 |
# File 'lib/runbook/util/stored_pose.rb', line 28 def self._slug(title) title.titleize.gsub(/[\/\s]+/, "").underscore.dasherize end |
.delete(title) ⇒ Object
20 21 22 |
# File 'lib/runbook/util/stored_pose.rb', line 20 def self.delete(title) FileUtils.rm_f(_file(title)) end |
.load(metadata) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/runbook/util/stored_pose.rb', line 6 def self.load() title = [:book_title] file = _file(title) if File.exist?(file) ::YAML::load_file(file) end end |
.register_delete_stored_pose_hook(base) ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# 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, | title = [:book_title] Runbook::Util::StoredPose.delete(title) end end |
.register_save_pose_hook(base) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# 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, | position = [:position] title = [:book_title] Runbook::Util::StoredPose.save(position, book_title: title) end end |
.save(repo, book_title:) ⇒ Object
14 15 16 17 18 |
# 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 |