erb_asterisk 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e610cfb2f91923f29bd275bfd7b9c5e8637cc66a
4
- data.tar.gz: e0822a08f4db944bc9110118c7951ce49a5b1ee0
3
+ metadata.gz: 15ea8de9a10deb06ada33cf27449a1dfc4fb8f12
4
+ data.tar.gz: be3349ce24ee0bec0a5ee6b0c779050a9868a611
5
5
  SHA512:
6
- metadata.gz: a37b559786461716758d3308208b311dc11340fe225c4c6b20a49f023792a64c88242393149887971c855776d38d2a66689f44e474a3c037e3b7685714d5a1db
7
- data.tar.gz: fbef54cbdacd8bc994a7774e596ed9e1dbfd9d7a58651dbdc4f0b5cdb2f52630e02e2e18c8e529366fcbea67e208f40088316fba79190df553ad408ff88ad1ae
6
+ metadata.gz: 07a37285ebe39767f5f60c71a601fd25a2cc3e24c056104c9daf51bd5df91cda7ab2a82a2940e90bea08b19543d4383bb10fe55739640c2184b9918019ab87c9
7
+ data.tar.gz: f677c3333572b3544387933e50b71e883af643d2eea6283cbbe02efd95ea3a4c25352838356741f4b39ceadb5b86cce0a22d9ff7cf2af9ca413c2cb2e1eb1389
data/Gemfile CHANGED
@@ -1,6 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| 'https://github.com/#{repo_name}' }
4
-
5
- # Specify your gem's dependencies in erb_asterisk.gemspec
6
3
  gemspec
data/exe/erb_asterisk CHANGED
@@ -1,75 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'erb'
4
- require 'find'
5
- require 'pathname'
3
+ require 'erb_asterisk'
6
4
 
7
- PROJECT_FILE = './erb_asterisk_project.rb'.freeze
8
- if File.exist?(PROJECT_FILE)
9
- require PROJECT_FILE
10
- end
11
-
12
- $exports = {}
13
- $templates = ''
14
-
15
- # Render template
16
- def render(template, vars = {})
17
- tpl = File.read("#{$templates}/#{template}.erb")
18
- e = ERB.new(tpl)
19
-
20
- b = TOPLEVEL_BINDING
21
- vars.each do |name, value|
22
- b.local_variable_set(name, value)
23
- end
24
-
25
- e.result
26
- end
27
-
28
- # Declare current config file inclusion to file_name
29
- def include_to(file_name)
30
- return unless TOPLEVEL_BINDING.local_variable_defined?(:current_conf_file)
31
- $exports[file_name] = [] if $exports[file_name].nil?
32
- arr = $exports[file_name]
33
-
34
- current_conf_file = TOPLEVEL_BINDING.local_variable_get(:current_conf_file)
35
- if arr.include?(current_conf_file)
36
- puts "Skip #{current_conf_file} duplicate inclusion to #{file_name}"
37
- return
38
- end
39
-
40
- arr << current_conf_file
41
- "; Included to \"#{file_name}\""
42
- end
43
-
44
- def asterisk_root
45
- return './' if File.exist?('asterisk.conf')
46
- return 'asterisk/' if Dir.exist?('asterisk/')
47
- raise 'Asterisk configuration not found'
48
- end
49
-
50
- root = asterisk_root
51
- $templates = "#{root}templates".freeze
52
-
53
- # Render ERB files
54
- Find.find(root) do |f|
55
- next if File.directory?(f)
56
- next if f.start_with?($templates)
57
- next unless f.end_with?('.erb')
58
-
59
- output_config = f.chomp('.erb')
60
-
61
- TOPLEVEL_BINDING.local_variable_set(:current_conf_file,
62
- output_config.sub(root, ''))
63
-
64
- File.write(output_config, ERB.new(File.read(f)).result)
65
- end
66
-
67
- # Save includes
68
- $exports.each do |include_file, content|
69
- s = ''
70
- content.each do |file|
71
- s << "#include \"#{file}\"\n"
72
- end
73
-
74
- File.write("#{root}#{include_file}", s)
75
- end
5
+ include ErbAsterisk
6
+ execute
@@ -1,3 +1,3 @@
1
1
  module ErbAsterisk
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
data/lib/erb_asterisk.rb CHANGED
@@ -1,2 +1,92 @@
1
+ require 'erb'
2
+ require 'find'
3
+ require 'pathname'
4
+
1
5
  module ErbAsterisk
6
+ # Render template
7
+ def render(template, vars = {})
8
+ tpl = File.read("#{@templates}/#{template}.erb")
9
+ e = ERB.new(tpl)
10
+
11
+ b = TOPLEVEL_BINDING
12
+ vars.each do |name, value|
13
+ b.local_variable_set(name, value)
14
+ end
15
+
16
+ e.result
17
+ end
18
+
19
+ # Declare current config file inclusion to file_name
20
+ def include_to(file_name)
21
+ return unless TOPLEVEL_BINDING.local_variable_defined?(:current_conf_file)
22
+ @exports[file_name] = [] if @exports[file_name].nil?
23
+ arr = @exports[file_name]
24
+
25
+ current_conf_file = TOPLEVEL_BINDING.local_variable_get(:current_conf_file)
26
+ if arr.include?(current_conf_file)
27
+ puts "Skip #{current_conf_file} duplicate inclusion to #{file_name}"
28
+ return
29
+ end
30
+
31
+ arr << current_conf_file
32
+ "; Included to \"#{file_name}\""
33
+ end
34
+
35
+ def execute
36
+ init_instance
37
+ load_project_file
38
+
39
+ root = asterisk_root
40
+ @templates = "#{root}templates".freeze
41
+
42
+ render_files(root)
43
+ export_includes(root)
44
+ end
45
+
46
+ private
47
+
48
+ ERB_PROJECT_FILE = './erb_asterisk_project.rb'.freeze
49
+ ERB_ASTERISK_CONF = 'asterisk.conf'.freeze
50
+ ERB_ASTERISK_DIR = 'asterisk/'.freeze
51
+
52
+ def init_instance
53
+ @exports = {}
54
+ @templates = ''
55
+ end
56
+
57
+ def asterisk_root
58
+ return './' if File.exist?(ERB_ASTERISK_CONF)
59
+ return ERB_ASTERISK_DIR if Dir.exist?(ERB_ASTERISK_DIR)
60
+ raise 'Asterisk configuration not found'
61
+ end
62
+
63
+ def load_project_file
64
+ require ERB_PROJECT_FILE if File.exist?(ERB_PROJECT_FILE)
65
+ end
66
+
67
+ def render_files(root)
68
+ Find.find(root) do |f|
69
+ next if File.directory?(f)
70
+ next if f.start_with?(@templates)
71
+ next unless f.end_with?('.erb')
72
+
73
+ output_config = f.chomp('.erb')
74
+
75
+ TOPLEVEL_BINDING.local_variable_set(:current_conf_file,
76
+ output_config.sub(root, ''))
77
+
78
+ File.write(output_config, ERB.new(File.read(f)).result)
79
+ end
80
+ end
81
+
82
+ def export_includes(root)
83
+ @exports.each do |include_file, content|
84
+ s = ''
85
+ content.each do |file|
86
+ s << "#include \"#{file}\"\n"
87
+ end
88
+
89
+ File.write("#{root}#{include_file}", s)
90
+ end
91
+ end
2
92
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erb_asterisk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Baikuzin