Class: Diary::Item
Constant Summary collapse
- ACCENTS =
{ ['á','à','â','ä','ã'] => 'a', ['Ã','Ä','Â','À','�?'] => 'A', ['é','è','ê','ë'] => 'e', ['Ë','É','È','Ê'] => 'E', ['í','ì','î','ï'] => 'i', ['�?','Î','Ì','�?'] => 'I', ['ó','ò','ô','ö','õ'] => 'o', ['Õ','Ö','Ô','Ò','Ó'] => 'O', ['ú','ù','û','ü'] => 'u', ['Ú','Û','Ù','Ü'] => 'U', ['ç'] => 'c', ['Ç'] => 'C', ['ñ'] => 'n', ['Ñ'] => 'N' }
Constants included from Message
Message::Create, Message::Error, Message::Exist, Message::Identical, Message::Invoke, Message::Publish, Message::Skip, Message::Update
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
Class Method Summary collapse
Instance Method Summary collapse
- #data ⇒ Object
- #directory ⇒ Object
-
#initialize(title_or_file, attributes = {}) ⇒ Item
constructor
A new instance of Item.
- #path ⇒ Object
- #slug ⇒ Object
- #title ⇒ Object
Methods included from Message
Constructor Details
#initialize(title_or_file, attributes = {}) ⇒ Item
Returns a new instance of Item.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/diary/item.rb', line 24 def initialize(title_or_file, attributes = {}) case title_or_file when File @new_file = false @file = title_or_file else @new_file = true @attributes = attributes @directory = extract_directory! @title = title_or_file @slug = nice_slug create! end end |
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
22 23 24 |
# File 'lib/diary/item.rb', line 22 def file @file end |
Class Method Details
.all ⇒ Object
60 61 62 63 64 |
# File 'lib/diary/item.rb', line 60 def self.all Dir[File.join(self.class_variable_get(:@@base_directory), "**", "*.md")].map do |p| self.new File.new(p, 'r') end end |
.first ⇒ Object
66 67 68 |
# File 'lib/diary/item.rb', line 66 def self.first all.first end |
.last ⇒ Object
70 71 72 |
# File 'lib/diary/item.rb', line 70 def self.last all.last end |
Instance Method Details
#data ⇒ Object
56 57 58 |
# File 'lib/diary/item.rb', line 56 def data OpenStruct.new(YAML.load_file(path)) end |
#directory ⇒ Object
52 53 54 |
# File 'lib/diary/item.rb', line 52 def directory @directory || File.dirname(path).gsub("#{base_directory}/", "") end |
#path ⇒ Object
48 49 50 |
# File 'lib/diary/item.rb', line 48 def path file ? file.path : File.join(base_directory, directory, "#{slug}.md") end |
#slug ⇒ Object
40 41 42 |
# File 'lib/diary/item.rb', line 40 def slug @slug || basename end |
#title ⇒ Object
44 45 46 |
# File 'lib/diary/item.rb', line 44 def title @title || data.title end |