class Knish::CollectionConfig

Attributes

db_config[RW]
model_config[RW]
path[RW]
unpersisted_count[RW]

Public Class Methods

new(model_config, path) click to toggle source
Calls superclass method
# File lib/knish/collection_config.rb, line 5
def initialize(model_config, path)
  super(model_config.db_config)
  @path = path
  @db_config = model_config.db_config
  @model_config = model_config
  @unpersisted_count = 0
end

Public Instance Methods

collection_root() click to toggle source
# File lib/knish/collection_config.rb, line 13
def collection_root
  "#{model_config.model_root}/#{path}"
end
generic_config() click to toggle source
# File lib/knish/collection_config.rb, line 25
def generic_config
  ModelConfig.new(Knish.config, '')
end
generic_model_configs() click to toggle source
# File lib/knish/collection_config.rb, line 21
def generic_model_configs
  ExistingModels.new(collection_root).ids.map { |id| member_config(generic_config, id) }
end
inspect() click to toggle source
# File lib/knish/collection_config.rb, line 29
def inspect
  DelegateInspector.new(self,
    [:db_config, :model_config, :path]
  ).to_inspect
end
member_config(original_config, id=nil) click to toggle source
# File lib/knish/collection_config.rb, line 35
def member_config(original_config, id=nil)
  config = original_config.clone
  config.id = member_id(id)
  config.path = "#{model_config.path}/#{model_config.id}/#{path}"
  config
end
next_id() click to toggle source
# File lib/knish/collection_config.rb, line 17
def next_id
  ExistingModels.new(collection_root).next_id + unpersisted_count
end

Private Instance Methods

member_id(id) click to toggle source
# File lib/knish/collection_config.rb, line 44
def member_id(id)
  return id if id
  id = next_id
  self.unpersisted_count += 1
  id
end