Project

General

Profile

« Previous | Next » 

Revision a65fd5e8

Added by Marc Dequènes almost 15 years ago

  • ID a65fd5e8dada1d5a31bfb01101bcd9888bbcb9fb

[fix] aspect hooks loading was broken, and moved file loading into the Config class

View differences:

lib/ldap_shadows/config.rb
config = File.read(config_file)
shadow = Shadow.new(shadow_name)
# register early (needed to load hooks)
@shadows[shadow_name] = {
:config_path => shadow_config_path,
:shadow => shadow
}
shadow.set_shadow_config(config)
load_config_components(shadow_config_path, 'aspects') do |c_name, c_config|
......
I18n.load_path += Dir[File.join(translation_path, "**", "*.yml")]
end
@shadows[shadow_name] = {
:config_path => shadow_config_path,
:shadow => shadow
}
shadow
rescue
raise PreProcessingError, _("Could not load shadow configuration: %s") % $!
......
def_data.recursive_symbolize_keys!
end
def load_hook_content(shadow_name, type, hook_name)
s_info = get_shadow_info(shadow_name)
return nil if s_info.nil?
filename = File.join(s_info[:config_path], "hooks", type.pluralize, hook_name.to_s.downcase + ".rb")
return nil unless File.exists?(filename)
File.read(filename)
end
protected
def load_config_components(shadow_config_path, type)
lib/ldap_shadows/shadow.rb
aspect_name = aspect_name.to_sym
@aspects[aspect_name] = aspect_def
return if @shadow_config_path.nil?
filename = File.join(@shadow_config_path, "hooks", "aspects", aspect_name.to_s.downcase + ".rb")
if File.exists?(filename)
klass_name = "LdapAspect" + aspect_name.to_s.capitalize
klass_content = File.read(filename)
begin
Aspects.module_eval(<<-EOS)
class #{klass_name} < LdapAspect
#{klass_content}
end
EOS
rescue
raise PreProcessingError, _("Could not load Aspect plugin '%s'") % aspect_name
end
klass_content = @config.load_hook_content(@name, 'aspect', aspect_name)
@aspects2[aspect_name] = Aspects.const_get(klass_name)
klass_name = "LdapAspect" + aspect_name.to_s.capitalize
begin
Aspects.module_eval(<<-EOS)
class #{klass_name} < LdapAspect
#{klass_content}
end
EOS
rescue
raise PreProcessingError, _("Could not load Aspect plugin '%s'") % aspect_name
end
@aspects2[aspect_name] = Aspects.const_get(klass_name)
end
def get_aspect(aspect_name)

Also available in: Unified diff