Class: Adhearsion::Asterisk::ConfigGenerator
- Inherits:
-
Object
- Object
- Adhearsion::Asterisk::ConfigGenerator
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/adhearsion/asterisk/config_generator.rb,
lib/adhearsion/asterisk/config_generator/agents.rb,
lib/adhearsion/asterisk/config_generator/queues.rb,
lib/adhearsion/asterisk/config_generator/voicemail.rb
Direct Known Subclasses
Agents, Queues, Queues::QueueDefinition, Voicemail, Voicemail::ContextDefinition, Voicemail::EmailDefinition, Voicemail::RecordingDefinition
Defined Under Namespace
Classes: Agents, Queues, Voicemail
Constant Summary collapse
- SECTION_TITLE =
/(\[[\w_-]+\])/
Class Method Summary collapse
-
.create_sanitary_hash_from(config_file_content) ⇒ Object
Converts a config file into a Hash of contexts mapping to two dimensional array of pairs.
- .warning_message ⇒ Object
Instance Method Summary collapse
-
#initialize {|_self| ... } ⇒ ConfigGenerator
constructor
A new instance of ConfigGenerator.
- #to_sanitary_hash ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ ConfigGenerator
Returns a new instance of ConfigGenerator.
35 36 37 |
# File 'lib/adhearsion/asterisk/config_generator.rb', line 35 def initialize yield self if block_given? end |
Class Method Details
.create_sanitary_hash_from(config_file_content) ⇒ Object
Converts a config file into a Hash of contexts mapping to two dimensional array of pairs
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/adhearsion/asterisk/config_generator.rb', line 15 def create_sanitary_hash_from(config_file_content) almost_sanitized = Hash[*config_file_content. split("\n"). # Split the lines into an Array grep(/^\s*[^;\s]/). # Grep lines that aren't commented out join("\n"). # Convert them into one String again split(SECTION_TITLE). # Separate them into sections map(&:strip). # Remove all whitespace reject(&:empty?). # Get rid of indices that were only whitespace # Lastly, separate the keys/value pairs for the Hash map { |token| token =~ /^#{SECTION_TITLE}$/ ? token : token.split(/\n+/).sort } ] end |
.warning_message ⇒ Object
28 29 30 31 |
# File 'lib/adhearsion/asterisk/config_generator.rb', line 28 def %{;; THIS FILE WAS GENERATED BY ADHEARSION ON #{Time.now.ctime}!\n} + %{;; ANY CHANGES MADE BELOW WILL BE BLOWN AWAY WHEN THE FILE IS REGENERATED!\n\n} end |
Instance Method Details
#to_sanitary_hash ⇒ Object
39 40 41 |
# File 'lib/adhearsion/asterisk/config_generator.rb', line 39 def to_sanitary_hash self.class.create_sanitary_hash_from to_s end |