class Silly::Item
Attributes
collection[RW]
content[RW]
data[RW]
pointer[R]
Public Class Methods
new(hash)
click to toggle source
# File lib/silly/item.rb, line 7 def initialize(hash) @pointer = hash end
Public Instance Methods
[](key)
click to toggle source
# File lib/silly/item.rb, line 11 def [](key) respond_to?(key) ? __send__(key) : nil end
cascade()
click to toggle source
# File lib/silly/item.rb, line 23 def cascade @pointer["cascade"] end
directories()
click to toggle source
# File lib/silly/item.rb, line 35 def directories File.dirname(id).split(Silly::FileSeparator) end
ext()
click to toggle source
# File lib/silly/item.rb, line 45 def ext File.extname(id) end
filename()
click to toggle source
# File lib/silly/item.rb, line 27 def filename @filename ||= id.gsub(Regexp.new("#{ ext }$"), '') end
id()
click to toggle source
# File lib/silly/item.rb, line 15 def id @pointer["id"] end
model()
click to toggle source
# File lib/silly/item.rb, line 39 def model %w{ .json .yaml .yml }.include?(ext) ? "data" : "page" end
realpath()
click to toggle source
# File lib/silly/item.rb, line 19 def realpath @pointer["cascade"].last end
shortname()
click to toggle source
# File lib/silly/item.rb, line 31 def shortname File.basename(id, ext) end
Private Instance Methods
_model()
click to toggle source
# File lib/silly/item.rb, line 61 def _model return @_model if @_model klass = if model == "data" Silly::DataModel else Silly::PageModel end @_model = klass.new(self) end