Module: Runbook::Util::Repo
- Defined in:
- lib/runbook/util/repo.rb
Constant Summary collapse
- FILE_ID =
"data"
- FILE_PERMISSIONS =
0600
Class Method Summary collapse
- ._file(book_title) ⇒ Object
- ._slug(title) ⇒ Object
- .delete(title) ⇒ Object
- .load(metadata) ⇒ Object
- .register_delete_stored_repo_hook(base) ⇒ Object
- .register_save_repo_hook(base) ⇒ Object
- .save(repo, book_title:) ⇒ Object
Class Method Details
._file(book_title) ⇒ Object
26 27 28 |
# File 'lib/runbook/util/repo.rb', line 26 def self._file(book_title) "#{Dir.tmpdir}/runbook_#{FILE_ID}_#{ENV["USER"]}_#{_slug(book_title)}.yml" end |
._slug(title) ⇒ Object
30 31 32 |
# File 'lib/runbook/util/repo.rb', line 30 def self._slug(title) title.titleize.gsub(/[\/\s]+/, "").underscore.dasherize end |
.delete(title) ⇒ Object
22 23 24 |
# File 'lib/runbook/util/repo.rb', line 22 def self.delete(title) FileUtils.rm_f(_file(title)) end |
.load(metadata) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/runbook/util/repo.rb', line 6 def self.load() title = [:book_title] file = _file(title) if File.exist?(file) msg = "Repo file #{file} detected. Loading previous state..." [:toolbox].output(msg) [:repo] = ::YAML::load_file(file) end end |
.register_delete_stored_repo_hook(base) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/runbook/util/repo.rb', line 46 def self.register_delete_stored_repo_hook(base) base.register_hook( :delete_stored_repo_hook, :after, Runbook::Entities::Book, ) do |object, | title = [:book_title] Runbook::Util::Repo.delete(title) end end |
.register_save_repo_hook(base) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/runbook/util/repo.rb', line 34 def self.register_save_repo_hook(base) base.register_hook( :save_repo_hook, :after, Object, ) do |object, | repo = [:repo] title = [:book_title] Runbook::Util::Repo.save(repo, book_title: title) end end |
.save(repo, book_title:) ⇒ Object
16 17 18 19 20 |
# File 'lib/runbook/util/repo.rb', line 16 def self.save(repo, book_title:) File.open(_file(book_title), 'w', FILE_PERMISSIONS) do |f| f.write(repo.to_yaml) end end |