Class: IPTables::Interpolation
- Inherits:
-
Object
- Object
- IPTables::Interpolation
- Defined in:
- lib/iptables/expansions.rb
Constant Summary collapse
- @@interpolation_regex =
/(.*?)<%\s*(\S+)\s*%>(.*)/
Instance Method Summary collapse
- #add_child(first, identifier, last) ⇒ Object
- #children ⇒ Object
-
#initialize(interpolations, initial_string) ⇒ Interpolation
constructor
A new instance of Interpolation.
Constructor Details
#initialize(interpolations, initial_string) ⇒ Interpolation
Returns a new instance of Interpolation.
149 150 151 152 153 154 155 156 157 158 |
# File 'lib/iptables/expansions.rb', line 149 def initialize(interpolations, initial_string) @interpolations = interpolations @initial_string = initial_string @child = nil if @initial_string =~ @@interpolation_regex self.add_child($1, $2, $3) else $log.debug("completed substitution: #{@initial_string}") end end |
Instance Method Details
#add_child(first, identifier, last) ⇒ Object
160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/iptables/expansions.rb', line 160 def add_child(first, identifier, last) interpolated = @interpolations.primitives.substitute(identifier) case interpolated when Array @child = [] interpolated.each{ |value| @child.push(Interpolation.new(@interpolations, "#{first}#{value}#{last}")) } else @child = Interpolation.new(@interpolations, "#{first}#{interpolated}#{last}") end end |
#children ⇒ Object
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/iptables/expansions.rb', line 173 def children() return_value = nil case @child when nil return_value = @initial_string when Array return_value = [] @child.each{ |value| return_value.push(value.children()) } else return_value = @child.children() end return return_value end |