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 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] DistinguishedName Base Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update Normalizable 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 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 Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Normalizable Attributes ClassMethods Configuration ClassMethods ObjectClass lib/active_ldap/get_text/parser.rb GetText ClassMethods Callbacks 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/jndi.rb Adapter Helper GetTextFallback 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.establish_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:             configuration = YAML.load(ERB.new(File.read(configuration)).result)
76:           else
77:             ENV["RAILS_ENV"] = configuration
78:             require 'config/environment'
79:             configuration = ActiveLdap::Base.configurations[configuration]
80:           end
81:         end
82:         if Object.const_defined?(:RAILS_ENV)
83:           rails_configuration = ActiveLdap::Base.configurations[RAILS_ENV]
84:           configuration = rails_configuration.merge(configuration)
85:         end
86:         configuration = configuration.symbolize_keys
87:       end

[Source]

     # File lib/active_ldap/get_text/parser.rb, line 101
101:       def extract(targets)
102:         @targets = {}
103:         targets.each do |id, *file_infos|
104:           @targets[id] = file_infos
105:         end
106:         yield
107:         @targets.collect do |id, file_infos|
108:           [id, *file_infos.uniq]
109:         end.sort_by do |id,|
110:           id
111:         end
112:       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 89
89:       def load_constants(file)
90:         old_constants = Object.constants
91:         begin
92:           eval(File.read(file), TOPLEVEL_BINDING, file)
93:         rescue
94:           format = _("Ignored '%{file}'. Solve dependencies first.")
95:           $stderr.puts(format % {:file => file})
96:           $stderr.puts($!)
97:         end
98:         Object.constants - old_constants
99:       end

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Validate]