opensecret 0.0.913 → 0.0.941
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +3 -0
- data/README.md +129 -19
- data/Rakefile +0 -9
- data/bin/opensecret +1 -1
- data/lib/{opensecret/plugins.io/cipher/crypto.rb → crypto/amalgam.rb} +6 -8
- data/lib/crypto/collect.rb +139 -0
- data/lib/crypto/engineer.rb +201 -0
- data/lib/crypto/verify.rb +33 -0
- data/lib/extension/array.rb +133 -0
- data/lib/{opensecret/additions → extension}/dir.rb +0 -0
- data/lib/extension/file.rb +56 -0
- data/lib/extension/hash.rb +33 -0
- data/lib/extension/string.rb +349 -0
- data/lib/factbase/facts.opensecret.io.ini +28 -0
- data/lib/logging/gem.logging.rb +133 -0
- data/lib/opensecret.rb +102 -45
- data/lib/opensecret/executors/crypt.keys/crypt.keys.ini +0 -53
- data/lib/session/{session.rb → attributes.rb} +60 -5
- data/lib/session/exceptions.rb +53 -0
- data/lib/session/fact.finder.rb +684 -0
- data/lib/session/user.home.rb +49 -0
- data/lib/usecase/usecase.rb +245 -0
- data/lib/usecase/usecases/init.rb +190 -0
- data/lib/usecase/usecases/on.rb +33 -0
- data/lib/usecase/usecases/safe.rb +95 -0
- data/lib/version.rb +1 -1
- metadata +22 -17
- data/lib/opensecret/additions/array.rb +0 -117
- data/lib/opensecret/additions/string.rb +0 -312
- data/lib/opensecret/commons/eco.cmdline.rb +0 -446
- data/lib/opensecret/eco.do.rb +0 -46
- data/lib/opensecret/plugins.io/error/eco.exceptions.rb +0 -24
- data/lib/opensecret/plugins.io/facts/fact.chars.rb +0 -66
- data/lib/opensecret/plugins.io/facts/fact.factor.rb +0 -156
- data/lib/opensecret/plugins.io/facts/fact.locator.rb +0 -105
- data/lib/opensecret/plugins.io/facts/fact.reader.rb +0 -137
- data/lib/opensecret/plugins.io/facts/fact.tree.rb +0 -661
- data/lib/opensecret/plugins.io/logs/log.object.rb +0 -89
- data/lib/opensecret/plugins.io/logs/logging.rb +0 -203
@@ -1,24 +0,0 @@
|
|
1
|
-
# --
|
2
|
-
# -- Exception when the AWS credentials are not found.
|
3
|
-
# --
|
4
|
-
class AwsCredentialsError < StandardError
|
5
|
-
|
6
|
-
### attr_reader :action
|
7
|
-
|
8
|
-
# --
|
9
|
-
# -- Create this exception object
|
10
|
-
def initialize message, credential_name
|
11
|
-
|
12
|
-
# --
|
13
|
-
# -- Call the parent's constructor to set the message
|
14
|
-
# --
|
15
|
-
super( message + " Missing Credential => #{credential_name}" )
|
16
|
-
|
17
|
-
# --
|
18
|
-
# -- Store the action in an instance variable
|
19
|
-
# --
|
20
|
-
### @action = action
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
# --
|
4
|
-
# -- Dot the I's and Cross the T's
|
5
|
-
# --
|
6
|
-
class Do
|
7
|
-
|
8
|
-
# --
|
9
|
-
# -- p => period (full stop)
|
10
|
-
# -- Deliver a "." period character
|
11
|
-
# --
|
12
|
-
def self.t
|
13
|
-
return "."
|
14
|
-
end
|
15
|
-
|
16
|
-
# --
|
17
|
-
# -- Note you do not need this method for declaration
|
18
|
-
# -- of a fact that contains just a single forward slash.
|
19
|
-
# -- The below will do.
|
20
|
-
# --
|
21
|
-
# -- fact.name = /
|
22
|
-
# --
|
23
|
-
# -- / => forward slash
|
24
|
-
# -- Deliver a "/" fwd slash character
|
25
|
-
# --
|
26
|
-
def self.f
|
27
|
-
return "/"
|
28
|
-
end
|
29
|
-
|
30
|
-
# --
|
31
|
-
# -- dq => double quote
|
32
|
-
# -- Deliver a \" (backslash double quote).
|
33
|
-
# -- Can solve the \\\ triple backslash problem.
|
34
|
-
# -- Use in Ruby and .ini fact files.
|
35
|
-
# --
|
36
|
-
def self.dq
|
37
|
-
return "\""
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
# --
|
43
|
-
# -- Dot the I's and Cross the T's
|
44
|
-
# -- DEPRECATED - Use the [Do] class instead.
|
45
|
-
# --
|
46
|
-
class Ch
|
47
|
-
|
48
|
-
# --
|
49
|
-
# -- p => period (full stop)
|
50
|
-
# -- Deliver a "." period character
|
51
|
-
# --
|
52
|
-
def self.p
|
53
|
-
return "."
|
54
|
-
end
|
55
|
-
|
56
|
-
# --
|
57
|
-
# -- dq => double quote
|
58
|
-
# -- Deliver a \" (backslash double quote).
|
59
|
-
# -- Can solve the \\\ triple backslash problem.
|
60
|
-
# -- Use in Ruby and .ini fact files.
|
61
|
-
# --
|
62
|
-
def self.dq
|
63
|
-
return "\""
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
@@ -1,156 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
class Refactor
|
4
|
-
|
5
|
-
# --
|
6
|
-
# -- Convert the parameter 2D map to a 1D map that respects
|
7
|
-
# -- the placeholder convention.
|
8
|
-
# --
|
9
|
-
# -- ------------------
|
10
|
-
# -- Original INI File
|
11
|
-
# -- ------------------
|
12
|
-
# --
|
13
|
-
# -- [windows]
|
14
|
-
# -- maker = Microsoft
|
15
|
-
# -- version = Windows 10 SP2
|
16
|
-
# --
|
17
|
-
# -- [ubuntu]
|
18
|
-
# -- maker = Canonical
|
19
|
-
# -- version = Ubuntu 16.04
|
20
|
-
# --
|
21
|
-
# -- -----------------
|
22
|
-
# -- Fact 2D Database
|
23
|
-
# -- -----------------
|
24
|
-
# --
|
25
|
-
# -- @f[:windows][:maker] => Microsoft
|
26
|
-
# -- @f[:windows][:version] => Windows 10 SP2
|
27
|
-
# -- @f[:ubuntu][:maker] => Canonical
|
28
|
-
# -- @f[:version][:version] => Ubuntu 16.04
|
29
|
-
# --
|
30
|
-
# -- ------------------------------------
|
31
|
-
# -- Flattened 1D Placeholder Key Values
|
32
|
-
# -- ------------------------------------
|
33
|
-
# --
|
34
|
-
# -- @flat[ '@[windows|maker]' ] => Microsoft
|
35
|
-
# -- @flat[ '@[windows|version]' ] => Windows 10 SP2
|
36
|
-
# -- @flat[ '@[ubuntu|maker]' ] => Canonical
|
37
|
-
# -- @flat[ '@[ubuntu|version]' ] => Ubuntu 16.04
|
38
|
-
# --
|
39
|
-
def self.flatten fact_db
|
40
|
-
|
41
|
-
flat_db = {}
|
42
|
-
|
43
|
-
fact_db.each do |grp_name,list_db|
|
44
|
-
list_db.each do |key_name,key_value|
|
45
|
-
grp_str = grp_name.to_s.gsub("_", ".")
|
46
|
-
key_str = key_name.to_s.gsub("_", ".")
|
47
|
-
|
48
|
-
flat_db[ "@[#{grp_str}|#{key_str}]" ] = key_value
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
return flat_db
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
# --
|
59
|
-
# -- Produce a multiline [sandwiched] string with the
|
60
|
-
# -- prefix and postfix sandwiching the array element.
|
61
|
-
# -- Furthermore and the specified number of spaces by
|
62
|
-
# -- as an indent before the prefix of each line.
|
63
|
-
# --
|
64
|
-
# -- ---------
|
65
|
-
# -- Example
|
66
|
-
# -- ---------
|
67
|
-
# --
|
68
|
-
# -- x_array : mon, tue, wed, thu, fri
|
69
|
-
# -- prefix : <weekday>
|
70
|
-
# -- postfix : </weekday>
|
71
|
-
# -- indent_len : 8
|
72
|
-
# --
|
73
|
-
# -- x_to_y changes horizontal x to multi-line y
|
74
|
-
# --
|
75
|
-
# -- <weekday>mon</weekday>
|
76
|
-
# -- <weekday>tue</weekday>
|
77
|
-
# -- <weekday>wed</weekday>
|
78
|
-
# -- <weekday>thu</weekday>
|
79
|
-
# -- <weekday>fri</weekday>
|
80
|
-
# --
|
81
|
-
# -- ------------
|
82
|
-
# -- Parameters
|
83
|
-
# -- ------------
|
84
|
-
# --
|
85
|
-
# -- str_array : array of strings to enwrap
|
86
|
-
# -- prefix : the lead element of the sandwich
|
87
|
-
# -- postfix : the tail element of the sandwich
|
88
|
-
# -- indent_len : the length (spaces) of indent
|
89
|
-
# --
|
90
|
-
# -- Return
|
91
|
-
# -- the multiline enwrapped string
|
92
|
-
# --
|
93
|
-
def self.sandwich_lines in_array, prefix, postfix, indent_len
|
94
|
-
|
95
|
-
out_array = Array.new
|
96
|
-
indent_str = " " * indent_len
|
97
|
-
in_array.each do | str_to_wrap |
|
98
|
-
out_array.push( indent_str + prefix + str_to_wrap + postfix )
|
99
|
-
end
|
100
|
-
|
101
|
-
return out_array.join( "\n" )
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
# -- -------------------------------------------------- -- #
|
106
|
-
# -- Return an (out) array of [sandwiched] strings with -- #
|
107
|
-
# -- the [prefix] and [postfix] sandwiching each of the -- #
|
108
|
-
# -- (in) array elements. -- #
|
109
|
-
# -- -- #
|
110
|
-
# -- -------------------------------------------------- -- #
|
111
|
-
# -- Example -- #
|
112
|
-
# -- -------------------------------------------------- -- #
|
113
|
-
# -- -- #
|
114
|
-
# -- x_array : mon, tue, wed, thu, fri -- #
|
115
|
-
# -- prefix : <weekday> -- #
|
116
|
-
# -- postfix : </weekday> -- #
|
117
|
-
# -- -- #
|
118
|
-
# -- x_to_y changes horizontal x to multi-line y -- #
|
119
|
-
# -- -- #
|
120
|
-
# -- <weekday>mon</weekday> -- #
|
121
|
-
# -- <weekday>tue</weekday> -- #
|
122
|
-
# -- <weekday>wed</weekday> -- #
|
123
|
-
# -- <weekday>thu</weekday> -- #
|
124
|
-
# -- <weekday>fri</weekday> -- #
|
125
|
-
# -- -- #
|
126
|
-
# -- -------------------------------------------------- -- #
|
127
|
-
# -- Parameters -- #
|
128
|
-
# -- -------------------------------------------------- -- #
|
129
|
-
# -- in_array : array of strings to enwrap -- #
|
130
|
-
# -- prefix : the lead element of the sandwich -- #
|
131
|
-
# -- postfix : the tail element of the sandwich -- #
|
132
|
-
# -- -- #
|
133
|
-
# -- Return -- #
|
134
|
-
# -- an array of the sandwiched elements -- #
|
135
|
-
# -- -------------------------------------------------- -- #
|
136
|
-
def self.sandwich_array in_array, prefix, postfix
|
137
|
-
|
138
|
-
out_array = Array.new
|
139
|
-
in_array.each do | wrap_str |
|
140
|
-
out_array.push prefix + wrap_str + postfix
|
141
|
-
end
|
142
|
-
|
143
|
-
log.info(ere) {"sandwiching array strings with supplied prefix and postfix."}
|
144
|
-
log.info(ere) {"sandwich prefix => #{prefix}"}
|
145
|
-
log.info(ere) {"sandwich postfix => #{postfix}"}
|
146
|
-
log.info(ere) {"the incoming array (to sandwich) size => #{in_array.length}"}
|
147
|
-
|
148
|
-
log.debug(ere) { "IN ARRAY => #{pp in_array}" }
|
149
|
-
log.debug(ere) { "IN ARRAY => #{pp out_array}" }
|
150
|
-
|
151
|
-
return out_array
|
152
|
-
|
153
|
-
end
|
154
|
-
|
155
|
-
|
156
|
-
end
|
@@ -1,105 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
# --
|
4
|
-
# -- Locate fact files using the stated convention when
|
5
|
-
# -- given the name and path of a module.
|
6
|
-
# --
|
7
|
-
class FactLocator
|
8
|
-
|
9
|
-
@@eco_factdir = "eco.system.facts"
|
10
|
-
@@fact_endtag = "factbase.ini"
|
11
|
-
|
12
|
-
# --
|
13
|
-
# -- Find path to class hierarchy fact file by convention.
|
14
|
-
# --
|
15
|
-
# -- -----------
|
16
|
-
# -- Convention
|
17
|
-
# -- -----------
|
18
|
-
# --
|
19
|
-
# -- Logic => read the module full file path
|
20
|
-
# -- => go down 2 directories (parent of parent)
|
21
|
-
# -- => go into folder eco.system.facts
|
22
|
-
# -- => add database.ini to extensionless module name
|
23
|
-
# --
|
24
|
-
# -- -----------
|
25
|
-
# -- Example
|
26
|
-
# -- -----------
|
27
|
-
# --
|
28
|
-
# -- module_path => /home/dir/prj/street/my_house.rb
|
29
|
-
# -- module_dir => /home/dir/prj
|
30
|
-
# -- fact folder => /home/dir/prj/eco.system.facts
|
31
|
-
# -- fact [file] => /home/dir/prj/eco.system.facts/my_house.factbase.ini
|
32
|
-
# --
|
33
|
-
# -- factdb_path => /home/dir/prj/street/eco.system.facts/my_house.factbase.ini
|
34
|
-
# --
|
35
|
-
def self.hierarchy_factdb_path module_path
|
36
|
-
|
37
|
-
module_name = File.basename module_path, File.extname(module_path)
|
38
|
-
factdb_name = "#{module_name}.#{@@fact_endtag}"
|
39
|
-
return File.join fact_base_dir(module_path), factdb_name
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
def self.keyfacts_factdb_path module_path
|
44
|
-
|
45
|
-
factdb_name = "facts.eco-instance.ini"
|
46
|
-
return File.join fact_base_dir(module_path), factdb_name
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
def self.workstation_factdb_path module_path
|
52
|
-
|
53
|
-
factdb_name = "facts.workstation.#{NetDns.instance.host_name}.ini"
|
54
|
-
return File.join fact_base_dir(module_path), factdb_name
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
# --
|
60
|
-
# -- Get the [fact databases] base directory given
|
61
|
-
# -- the full path to the requesting module.
|
62
|
-
# --
|
63
|
-
# -- ----------------------
|
64
|
-
# -- Acquire Base Dir Logic
|
65
|
-
# -- ----------------------
|
66
|
-
# --
|
67
|
-
# -- To acquire the base directory given the full
|
68
|
-
# -- path to the requesting module we
|
69
|
-
# --
|
70
|
-
# -- 1 => go down 2 directories (parent of parent)
|
71
|
-
# -- 2 => go into folder eco.system.facts
|
72
|
-
# --
|
73
|
-
def self.fact_base_dir module_path
|
74
|
-
fact_basedir = File.dirname( File.dirname( module_path ) )
|
75
|
-
return File.join fact_basedir, @@eco_factdir
|
76
|
-
end
|
77
|
-
|
78
|
-
# --
|
79
|
-
# -- --------------
|
80
|
-
# -- Use Case
|
81
|
-
# -- --------------
|
82
|
-
# -- Find path to method block scoped fact file by convention.
|
83
|
-
# --
|
84
|
-
# -- --------------
|
85
|
-
# -- Example
|
86
|
-
# -- --------------
|
87
|
-
# -- module_path => /home/dir/prj/street/my_flat.rb
|
88
|
-
# -- module_dir => /home/dir/prj/street
|
89
|
-
# -- module_name => my_flat
|
90
|
-
# -- method_name => to_rooms
|
91
|
-
# -- fact_folder = module_dir / eco.system.facts
|
92
|
-
# --
|
93
|
-
# -- factdb_path => /home/dir/prj/eco.system.facts/my_flat.to.rooms.ini
|
94
|
-
# --
|
95
|
-
def self.block_factdb_path module_path, method_symbol
|
96
|
-
|
97
|
-
module_name = File.basename module_path, File.extname(module_path)
|
98
|
-
method_name = method_symbol.to_s.gsub("_", ".")
|
99
|
-
factdb_name = module_name + "." + method_name + ".ini"
|
100
|
-
return File.join fact_base_dir(module_path), factdb_name
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
end
|
@@ -1,137 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
## --- ---------------------------------------------------------------------- --- #
|
4
|
-
## --- How to Use File to extract different parts of an [absolute] file path. --- #
|
5
|
-
## --- ---------------------------------------------------------------------- --- #
|
6
|
-
## ====] file = "/path/to/xyz.mp4"
|
7
|
-
## --- ---------------------------------------------------------------------- --- #
|
8
|
-
## ====] comp = File.basename file # => "xyz.mp4"
|
9
|
-
## ====] extn = File.extname file # => ".mp4"
|
10
|
-
## ====] name = File.basename file, extn # => "xyz"
|
11
|
-
## ====] path = File.dirname file # => "/path/to"
|
12
|
-
## --- ---------------------------------------------------------------------- --- #
|
13
|
-
|
14
|
-
# -- --------------------------------------------------------------------- -- #
|
15
|
-
# -- Global (dictionary) fact manager. -- #
|
16
|
-
# -- --------------------------------------------------------------------- -- #
|
17
|
-
class FactReader
|
18
|
-
|
19
|
-
attr_reader :f
|
20
|
-
|
21
|
-
# -
|
22
|
-
# -- Create a fact database given an INI file
|
23
|
-
# -- as well as an initial 2D database entry,
|
24
|
-
# -- and a parental fact database whose facts
|
25
|
-
# -- can be reused.
|
26
|
-
# -
|
27
|
-
# -- @f will be the referenciable object wide
|
28
|
-
# -- name for the created fact database.
|
29
|
-
# -
|
30
|
-
# -- Parameters
|
31
|
-
# -- fact_data : parental fact database
|
32
|
-
# -- ini_filepath : path to src INI factfile
|
33
|
-
# -- group_symbol : for first param entry
|
34
|
-
# -- key_symbol : for first param entry
|
35
|
-
# -- key_value : for first param entry
|
36
|
-
# -
|
37
|
-
# -- Dependencies and Assumptions
|
38
|
-
# -- the [inifile] gem is installed
|
39
|
-
# -- file exists at the ini_filepath
|
40
|
-
# -- factory_facts are instantiated
|
41
|
-
# -
|
42
|
-
def initialize fact_data, ini_filepath, group_symbol, key_symbol, key_value
|
43
|
-
|
44
|
-
# -- ---------------------------------------------------- -- #
|
45
|
-
# -- This time use param fact database for instantiation. -- #
|
46
|
-
# -- ---------------------------------------------------- -- #
|
47
|
-
@f = fact_data.nil? ? {} : fact_data
|
48
|
-
|
49
|
-
# -- ------------------------------------------------ -- #
|
50
|
-
# -- Add initializr (parameter) fact to the database. -- #
|
51
|
-
# -- ------------------------------------------------ -- #
|
52
|
-
add_fact group_symbol, key_symbol, key_value unless group_symbol.nil? && key_symbol.nil? && key_value.nil?
|
53
|
-
|
54
|
-
# -- ------------------------------------------ -- #
|
55
|
-
# -- Assimilate all the facts in this INI file. -- #
|
56
|
-
# -- ------------------------------------------ -- #
|
57
|
-
assimilate_ini_file ini_filepath
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
# -- ------------------------------------------- -- #
|
63
|
-
# -- Read the PROPERTY file key/value pairs -- #
|
64
|
-
# -- and store them in the fact database under -- #
|
65
|
-
# -- the group symbol specified. -- #
|
66
|
-
# -- -- #
|
67
|
-
# -- Can be used to assimilate files like the -- #
|
68
|
-
# -- ubiquitous application.properties into the -- #
|
69
|
-
# -- fact database. -- #
|
70
|
-
# -- -- #
|
71
|
-
# -- Subsequently, the incoming facts can then -- #
|
72
|
-
# -- be consumed, updated and deleted as per the -- #
|
73
|
-
# -- usual protocols. -- #
|
74
|
-
# -- ------------------------------------------- -- #
|
75
|
-
# -- property file facts are NOT evaluated they -- #
|
76
|
-
# -- are simply assumed to be strings. -- #
|
77
|
-
# -- ------------------------------------------- -- #
|
78
|
-
# -- Parameters -- #
|
79
|
-
# -- property_filepath : path to prop file -- #
|
80
|
-
# -- group_symbol : collection 4 facts -- #
|
81
|
-
# -- -- #
|
82
|
-
# -- Dependencies and Assumptions -- #
|
83
|
-
# -- properties file exists and formatted -- #
|
84
|
-
# -- group symbol not added if already exists -- #
|
85
|
-
# -- props are not eval'd - assumed 2b "strs" -- #
|
86
|
-
# -- ------------------------------------------- -- #
|
87
|
-
def assimilate_property_file property_filepath, group_symbol
|
88
|
-
|
89
|
-
return unless File.exists? property_filepath
|
90
|
-
|
91
|
-
then_count = @f[group_symbol].nil? ? 0 : @f[group_symbol].length
|
92
|
-
|
93
|
-
IO.foreach( property_filepath ) do |dirty_file_line|
|
94
|
-
|
95
|
-
file_line = dirty_file_line.strip
|
96
|
-
next if file_line.empty?
|
97
|
-
next if file_line.start_with? "#"
|
98
|
-
|
99
|
-
segments = file_line.split("=")
|
100
|
-
raise_properrty_error if segments.length < 2
|
101
|
-
property_value = file_line[(segments.first.length+1)..-1]
|
102
|
-
|
103
|
-
key_symbol = segments.first.strip.gsub(".","_").to_sym
|
104
|
-
add_fact group_symbol, key_symbol, property_value
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
now_count = @f[group_symbol].nil? ? 0 : @f[group_symbol].length
|
109
|
-
|
110
|
-
log.info(ere) { "[fact reader] -------------------------------------------------------- -- #" }
|
111
|
-
log.info(ere) { "[fact reader] THEN => [#{then_count}] properties existed (and)" }
|
112
|
-
log.info(ere) { "[fact reader] NOW => [#{now_count}] properties exist." }
|
113
|
-
log.info(ere) { "[fact reader] -------------------------------------------------------- -- #" }
|
114
|
-
LogObject.map @f[group_symbol]
|
115
|
-
log.info(ere) { "[fact reader] -------------------------------------------------------- -- #" }
|
116
|
-
|
117
|
-
end
|
118
|
-
|
119
|
-
|
120
|
-
# -- --------------------------------------------------------- -- #
|
121
|
-
# -- If a line in the property file contains less than two -- #
|
122
|
-
# -- segments (using equals = as the divider), raise error. -- #
|
123
|
-
# -- --------------------------------------------------------- -- #
|
124
|
-
def raise_properrty_error file_path, file_line, segments
|
125
|
-
|
126
|
-
error_desc = "Expected app properties file line to contain at least one equals."
|
127
|
-
error_vals = "Instead [#{segments.length}] parts were found in the array."
|
128
|
-
error_line = "file path => #{file_path}"
|
129
|
-
error_line = "file line => #{file_line}"
|
130
|
-
error_pair = "key value => #{segments.to_s}"
|
131
|
-
error_text = "\n\n#{error_desc}\n#{error_vals}\n\n#{error_line}\n\n#{error_pair}"
|
132
|
-
raise SyntaxError.new error_text
|
133
|
-
|
134
|
-
end
|
135
|
-
|
136
|
-
|
137
|
-
end
|