Class: Adhearsion::VoIP::Asterisk::ConfigFileGenerators::AsteriskConfigGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/adhearsion/voip/asterisk/config_generators/config_generator.rb

Constant Summary collapse

SECTION_TITLE =
/(\[[\w_-]+\])/

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ AsteriskConfigGenerator

Returns a new instance of AsteriskConfigGenerator.

Yields:

  • (_self)

Yield Parameters:



32
33
34
# File 'lib/adhearsion/voip/asterisk/config_generators/config_generator.rb', line 32

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



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/adhearsion/voip/asterisk/config_generators/config_generator.rb', line 12

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_messageObject



25
26
27
28
# File 'lib/adhearsion/voip/asterisk/config_generators/config_generator.rb', line 25

def warning_message
  %{;; 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_hashObject



36
37
38
# File 'lib/adhearsion/voip/asterisk/config_generators/config_generator.rb', line 36

def to_sanitary_hash
  self.class.create_sanitary_hash_from to_s
end