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