Class ActiveLdap::GetText::Parser
In: lib/active_ldap/get_text/parser.rb
Parent: Object
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound 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 HasMany HasManyWrap BelongsToMany Proxy BelongsTo Normalizable Common Find LDIF Delete Update GetText Parser ActiveRecord::Callbacks ActiveRecord::Validations 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 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 LdapBenchmarking ActionController ClassMethods Associations Compatible ClassMethods Tree Acts 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 Populate Command ClassMethods Normalizable Attributes Escape GetTextSupport Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations ClassMethods Configuration lib/active_ldap/get_text/parser.rb GetText ClassMethods Callbacks ClassMethods ObjectClass Validations 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 Helper GetTextFallback ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_45_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]