Module: Runbook::Util::StoredPose
- Defined in:
- lib/runbook/util/stored_pose.rb
Constant Summary collapse
- FILE_ID =
"current_position"
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
23 24 25 |
# File 'lib/runbook/util/stored_pose.rb', line 23 def self._file(book_title) "#{Dir.tmpdir}/runbook_#{FILE_ID}_#{ENV["USER"]}_#{_slug(book_title)}.yml" end |
._slug(title) ⇒ Object
27 28 29 |
# File 'lib/runbook/util/stored_pose.rb', line 27 def self._slug(title) title.titleize.gsub(/\s+/, "").underscore.dasherize end |
.delete(title) ⇒ Object
19 20 21 |
# File 'lib/runbook/util/stored_pose.rb', line 19 def self.delete(title) FileUtils.rm_f(_file(title)) end |
.load(metadata) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/runbook/util/stored_pose.rb', line 5 def self.load() title = [:book_title] file = _file(title) if File.exists?(file) ::YAML::load_file(file) end end |
.register_delete_stored_pose_hook(base) ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/runbook/util/stored_pose.rb', line 43 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
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/runbook/util/stored_pose.rb', line 31 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
13 14 15 16 17 |
# File 'lib/runbook/util/stored_pose.rb', line 13 def self.save(repo, book_title:) File.open(_file(book_title), 'w') do |f| f.write(repo.to_yaml) end end |