module Subledger::Domain::Roles::Creatable::CreatableClass

Public Instance Methods

create(args) click to toggle source
# File lib/subledger/domain/roles/creatable.rb, line 10
def create args
  validate_creatability args

  creatable = args[:client].send active_klass.collection_name, args

  args[:store].create creatable
end
new_or_create(args) { |item| ... } click to toggle source
# File lib/subledger/domain/roles/creatable.rb, line 18
def new_or_create args
  id = args[:id]

  if id.nil?
    item = active_klass.create args

    yield item

    item
  else
    active_klass.new args
  end
end

Private Instance Methods

validate_creatability(args) click to toggle source
# File lib/subledger/domain/roles/creatable.rb, line 34
def validate_creatability args
  raise_unless_creatable args
  validate_creatability_modules args
end
validate_creatability_modules(args) click to toggle source
# File lib/subledger/domain/roles/creatable.rb, line 39
def validate_creatability_modules args
  self.included_modules.each do |mod|
    if mod.respond_to? :raise_unless_creatable
      mod.raise_unless_creatable args
    end
  end
end