module Railjet::Repository
Attributes
registry[R]
Public Class Methods
new(registry, **kwargs)
click to toggle source
# File lib/railjet/repository.rb, line 6 def initialize(registry, **kwargs) @registry = registry initialize_specific_repositories(**kwargs) end
Private Instance Methods
initialize_repository(repository, **kwargs)
click to toggle source
# File lib/railjet/repository.rb, line 31 def initialize_repository(repository, **kwargs) ivar = "@#{repository.type}" dao = kwargs[repository.type] instance_variable_set(ivar, repository.new(registry, :"#{repository.type}" => dao)) self.class.send :attr_reader, repository.type end
initialize_specific_repositories(**kwargs)
click to toggle source
# File lib/railjet/repository.rb, line 23 def initialize_specific_repositories(**kwargs) repositories.each do |repo| initialize_repository(repo, **kwargs) end end
repositories()
click to toggle source
# File lib/railjet/repository.rb, line 13 def repositories klass = self.class inner_klasses = klass.constants inner_repos = inner_klasses.select { |k| k.to_s.end_with?("Repository") } inner_repos.map do |k| klass.const_get(k) end end