module Textrepo

Constants

VERSION

Public Class Methods

init(conf) click to toggle source

Returns an instance which derived from Textrepo::Repository class. `conf` must be an object which can be accessed like a Hash object. And it must also has a value of `:repository_type` and `:repository_name` at least. Some concrete class derived from Textrepo::Repository may require more key-value pairs in `conf`.

# File lib/textrepo/repository.rb, line 200
def init(conf)
  type = conf[:repository_type]
  klass_name = type.to_s.split(/_/).map(&:capitalize).join + "Repository"
  if Textrepo.const_defined?(klass_name)
    klass = Textrepo.const_get(klass_name, false)
  else
    raise UnknownRepoTypeError, type.nil? ? "(nil)" : type
  end
  klass.new(conf)
end

Private Instance Methods

init(conf) click to toggle source

Returns an instance which derived from Textrepo::Repository class. `conf` must be an object which can be accessed like a Hash object. And it must also has a value of `:repository_type` and `:repository_name` at least. Some concrete class derived from Textrepo::Repository may require more key-value pairs in `conf`.

# File lib/textrepo/repository.rb, line 200
def init(conf)
  type = conf[:repository_type]
  klass_name = type.to_s.split(/_/).map(&:capitalize).join + "Repository"
  if Textrepo.const_defined?(klass_name)
    klass = Textrepo.const_get(klass_name, false)
  else
    raise UnknownRepoTypeError, type.nil? ? "(nil)" : type
  end
  klass.new(conf)
end