class Everything::Piece::Metadata
Attributes
piece_path[R]
Public Class Methods
new(piece_path)
click to toggle source
TODO: Need to add some ways in here to save the metadata file once it's been edited. TODO: Also add a to_s or inspect methods to render the raw_yaml
TODO: Also add a []= here that delegates to raw_yaml
as well.
# File lib/everything/piece/metadata.rb, line 14 def initialize(piece_path) @piece_path = piece_path end
Public Instance Methods
absolute_dir()
click to toggle source
# File lib/everything/piece/metadata.rb, line 18 def absolute_dir @absolute_dir ||= Everything.path.join(dir) end
absolute_path()
click to toggle source
# File lib/everything/piece/metadata.rb, line 22 def absolute_path @absolute_path ||= absolute_dir.join(file_name) end
dir()
click to toggle source
# File lib/everything/piece/metadata.rb, line 26 def dir @dir ||= calculated_dir end
file_path()
click to toggle source
# File lib/everything/piece/metadata.rb, line 30 def file_path # TODO: Could try a deprecation approach like http://seejohncode.com/2012/01/09/deprecating-methods-in-ruby/ deprecation_message = "Piece Metadata's #file_path is deprecated and will be removed soon. Use #absolute_path instead." warn deprecation_message @file_path ||= File.join(piece_path, file_name) end
path()
click to toggle source
# File lib/everything/piece/metadata.rb, line 37 def path @path ||= dir.join(file_name) end
raw_yaml()
click to toggle source
# File lib/everything/piece/metadata.rb, line 41 def raw_yaml @raw_yaml ||= YAML.load_file(absolute_path) end
raw_yaml=(value)
click to toggle source
# File lib/everything/piece/metadata.rb, line 45 def raw_yaml=(value) @raw_yaml = value end
save()
click to toggle source
# File lib/everything/piece/metadata.rb, line 49 def save FileUtils.mkdir_p(piece_path) absolute_path.write(@raw_yaml) end
Private Instance Methods
calculated_dir()
click to toggle source
# File lib/everything/piece/metadata.rb, line 64 def calculated_dir full_pathname = Pathname.new(piece_path) _relative_pathname = full_pathname.relative_path_from(Everything.path) end
file_name()
click to toggle source
# File lib/everything/piece/metadata.rb, line 60 def file_name 'index.yaml' end