Class ActiveLdap::GetText::Parser
In: lib/active_ldap/get_text/parser.rb
Parent: Object
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid DistinguishedNameNotSetError EntryNotFound LdapError SaveError StrongAuthenticationRequired NotImplemented AdapterNotFound TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError ConnectionNotSetup DistinguishedNameInvalid Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] Base DistinguishedName Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Normalizable Common Find LDIF Delete Update ActiveRecord::Callbacks GetText Parser Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/jndi.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Jndi Ldap NetLdap GetTextSupport ActiveRecord::Validations Xml JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/xml.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb Compatible ClassMethods Associations LdapBenchmarking ActionController Populate lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/children.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb lib/active_ldap/association/has_many.rb HasManyUtils Association ClassMethods Tree Acts Command ClassMethods Normalizable Attributes Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Configuration ClassMethods ObjectClass ClassMethods Callbacks lib/active_ldap/get_text/parser.rb GetText lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb lib/active_ldap/adapter/jndi.rb Adapter Validations GetTextFallback Helper ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_46_0.png

Methods

Included Modules

GetText

Public Class methods

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 9
 9:       def initialize(configuration=nil)
10:         configuration = ensure_configuration(configuration)
11:         configuration = default_configuration.merge(configuration)
12: 
13:         configuration = extract_options(configuration)
14:         ActiveLdap::Base.setup_connection(configuration)
15:       end

Public Instance methods

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 37
37:       def extract_all_in_schema(targets=[])
38:         extract(targets) do
39:           schema = ActiveLdap::Base.schema
40:           schema.object_classes.each do |object_class|
41:             register_object_class(object_class, "-")
42:           end
43:           schema.attributes.each do |attribute|
44:             register_attribute(attribute, "-")
45:           end
46:           schema.ldap_syntaxes.each do |syntax|
47:             register_syntax(syntax, "-")
48:           end
49:         end
50:       end

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 17
17:       def parse(file, targets=[])
18:         targets = RubyParser.parse(file, targets) if RubyParser.target?(file)
19:         extract(targets) do
20:           load_constants(file).each do |name|
21:             klass = name.constantize
22:             next unless klass.is_a?(Class)
23:             next unless klass < ActiveLdap::Base
24:             register(klass.name.singularize.underscore.gsub(/_/, " "), file)
25:             next unless @extract_schema
26:             klass.classes.each do |object_class|
27:               register_object_class(object_class, file)
28:             end
29:           end
30:         end
31:       end

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 33
33:       def target?(file)
34:         @classes_re.match(File.read(file))
35:       end

Private Instance methods

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 61
61:       def default_configuration
62:         {
63:           :host => "127.0.0.1",
64:           :allow_anonymous => true,
65:           :extract_schema => false,
66:         }
67:       end

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 69
69:       def ensure_configuration(configuration)
70:         configuration ||= ENV["RAILS_ENV"] || {}
71:         if configuration.is_a?(String)
72:           if File.exists?(configuration)
73:             require 'erb'
74:             require 'yaml'
75:             erb = ERB.new(File.read(configuration))
76:             erb.filename = configuration
77:             configuration = YAML.load(erb.result)
78:           else
79:             ENV["RAILS_ENV"] = configuration
80:             require 'config/environment'
81:             configuration = ActiveLdap::Base.configurations[configuration]
82:           end
83:         end
84:         if Object.const_defined?(:RAILS_ENV)
85:           rails_configuration = ActiveLdap::Base.configurations[RAILS_ENV]
86:           configuration = rails_configuration.merge(configuration)
87:         end
88:         configuration = configuration.symbolize_keys
89:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 103
103:       def extract(targets)
104:         @targets = {}
105:         targets.each do |id, *file_infos|
106:           @targets[id] = file_infos
107:         end
108:         yield
109:         @targets.collect do |id, file_infos|
110:           [id, *file_infos.uniq]
111:         end.sort_by do |id,|
112:           id
113:         end
114:       end

[Source]

    # File lib/active_ldap/get_text/parser.rb, line 53
53:       def extract_options(configuration)
54:         configuration = configuration.dup
55:         classes = configuration.delete(:classes) || ["ActiveLdap::Base"]
56:         @classes_re = /class.*#{Regexp.union(*classes)}/ #
57:         @extract_schema = configuration.delete(:extract_schema)
58:         configuration
59:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 91
 91:       def load_constants(file)
 92:         old_constants = Object.constants
 93:         begin
 94:           eval(File.read(file), TOPLEVEL_BINDING, file)
 95:         rescue
 96:           format = _("Ignored '%{file}'. Solve dependencies first.")
 97:           $stderr.puts(format % {:file => file})
 98:           $stderr.puts($!)
 99:         end
100:         Object.constants - old_constants
101:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 116
116:       def register(id, file)
117:         file_info = "#{file}:-"
118:         @targets[id] ||= []
119:         @targets[id] << file_info
120:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 139
139:       def register_attribute(attribute, file)
140:         [attribute.name, *attribute.aliases].each do |name|
141:           msgid = ActiveLdap::Base.human_attribute_name_msgid(name)
142:           register(msgid, file) if msgid
143:         end
144:         if attribute.description
145:           msgid = ActiveLdap::Base.human_attribute_description_msgid(attribute)
146:           register(msgid, file)
147:         end
148:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 122
122:       def register_object_class(object_class, file)
123:         [object_class.name, *object_class.aliases].each do |name|
124:           register(ActiveLdap::Base.human_object_class_name_msgid(name), file)
125:         end
126:         if object_class.description
127:           msgid =
128:             ActiveLdap::Base.human_object_class_description_msgid(object_class)
129:           register(msgid, file)
130:         end
131:         (object_class.must(false) + object_class.may(false)).each do |attribute|
132:           register_attribute(attribute, file)
133:         end
134:         object_class.super_classes.each do |super_class|
135:           register_object_class(super_class, file)
136:         end
137:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 150
150:       def register_syntax(syntax, file)
151:         msgid = ActiveLdap::Base.human_syntax_name_msgid(syntax)
152:         register(msgid, file)
153: 
154:         if syntax.description
155:           msgid = ActiveLdap::Base.human_syntax_description_msgid(syntax)
156:           register(msgid, file)
157:         end
158:       end

[Validate]