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 ConnectionNotEstablished TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError DistinguishedNameInvalid 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 Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb 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_44_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]