class Subledger::Domain::Book

Attributes

org[R]

Public Class Methods

active_klass() click to toggle source
# File lib/subledger/domain/book.rb, line 46
def self.active_klass
  ActiveBook
end
archived_klass() click to toggle source
# File lib/subledger/domain/book.rb, line 50
def self.archived_klass
  ArchivedBook
end
new(args) click to toggle source
# File lib/subledger/domain/book.rb, line 54
def initialize args
  describable args
  identifiable args
  storable args
  versionable args

  @org  = args[:org]
end
patch_keys() click to toggle source
# File lib/subledger/domain/book.rb, line 32
def self.patch_keys
  # TODO should :id be in patch_keys?

  [ :id, :description, :reference, :version ]
end
post_keys() click to toggle source
# File lib/subledger/domain/book.rb, line 28
def self.post_keys
  [ :org, :description, :reference ]
end
root_klass() click to toggle source
# File lib/subledger/domain/book.rb, line 38
def self.root_klass
  Book
end
sub_klasses() click to toggle source
# File lib/subledger/domain/book.rb, line 42
def self.sub_klasses
  [ active_klass, archived_klass ]
end

Private Class Methods

raise_unless_creatable(args) click to toggle source
# File lib/subledger/domain/book.rb, line 80
def self.raise_unless_creatable args
  org = args[:org]

  if org.nil? or not org.kind_of? Org
    raise BookError, ':org is required and must be an Org'
  elsif UUID.invalid? org.id
    raise BookError, ':org must have a valid :id'
  end
end