Class: PicsolveDockerBuilder::Helpers::Config::VariableObject
- Inherits:
-
Object
- Object
- PicsolveDockerBuilder::Helpers::Config::VariableObject
- Defined in:
- lib/picsolve_docker_builder/helpers/config/variable_object.rb
Overview
represents a config string that contains variables
Class Method Summary collapse
- .regex ⇒ Object
-
.regex_full ⇒ Object
Regex that finds variabales.
-
.replace_string(obj) ⇒ Object
Checks if a string needs to be replaced by an VariableObject.
Instance Method Summary collapse
-
#create_list ⇒ Object
Split the strings accordingly.
-
#initialize(str) ⇒ VariableObject
constructor
A new instance of VariableObject.
- #inspect ⇒ Object
- #list ⇒ Object
-
#replace_variables(list) ⇒ Object
Replace variables.
-
#split_list(existing_list = []) ⇒ Object
Split the strings accordingly.
- #to_s ⇒ Object
Constructor Details
#initialize(str) ⇒ VariableObject
Returns a new instance of VariableObject.
64 65 66 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 64 def initialize(str) @str = str end |
Class Method Details
.regex ⇒ Object
11 12 13 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 11 def self.regex /\$\{[^\}]*\}/ end |
.regex_full ⇒ Object
Regex that finds variabales
7 8 9 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 7 def self.regex_full /^\$\{([^\}]*)\}$/ end |
.replace_string(obj) ⇒ Object
Checks if a string needs to be replaced by an VariableObject
16 17 18 19 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 16 def self.replace_string(obj) return obj unless VariableObject.regex.match(obj) VariableObject.new(obj) end |
Instance Method Details
#create_list ⇒ Object
Split the strings accordingly
26 27 28 29 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 26 def create_list lst = split_list replace_variables(lst) end |
#inspect ⇒ Object
48 49 50 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 48 def inspect "<#VariableObject#{list}>" end |
#list ⇒ Object
21 22 23 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 21 def list @list ||= create_list end |
#replace_variables(list) ⇒ Object
Replace variables
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 32 def replace_variables(list) list.map! do |elem| m = elem.match(VariableObject.regex_full) if m "var=#{m[1]}" else elem end end end |
#split_list(existing_list = []) ⇒ Object
Split the strings accordingly
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 53 def split_list(existing_list = []) if existing_list.length == 0 str = @str else str = existing_list.pop return existing_list if str.length == 0 end list = existing_list + str.partition(VariableObject.regex) split_list(list) end |
#to_s ⇒ Object
43 44 45 46 |
# File 'lib/picsolve_docker_builder/helpers/config/variable_object.rb', line 43 def to_s # TODO: implement var evaluation here "<#VariableObject#{list}>" end |