pad_utils 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pad_utils/pad_text.rb +107 -2
- data/lib/pad_utils/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46369e29476640a59df9f7c0a8ac5864bbc24361
|
4
|
+
data.tar.gz: c5a3ac14efe6a8d7700c0afc3e0420ecbe986cc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2da2c9f8d35ec72b2246a398f4560e8b94fe010190c6f7a61f3b7b9680a5f76772145e2474e040c4cf8fc407a504ea3aac9a99b6e9e5e3d880fb076e575c880a
|
7
|
+
data.tar.gz: 0fa3dd9e8a963b0e8fff13bae15a1816fc6a8a0f9ed1a479784bf40b65573f31cf9fb431764387cc50b65d4afe7026516ca1ec810233f3da3449770d750baaad
|
data/lib/pad_utils/pad_text.rb
CHANGED
@@ -90,8 +90,113 @@ module PadUtils
|
|
90
90
|
PadUtils.log("Error replacing #{old_text} in #{file} with #{new_text}", e)
|
91
91
|
end
|
92
92
|
|
93
|
-
#
|
94
|
-
#
|
93
|
+
# Gets a value from a Ruby config file.
|
94
|
+
#
|
95
|
+
# *This method is some kind of UFO but it is heavily used in Padstone.
|
96
|
+
# It is made to retrieve the value inside a Rails config file or initializer
|
97
|
+
# such as getting the value of `config.eager_load` in `production.rb`.
|
98
|
+
# Everything gets returned as a string or as nil if not found.*
|
99
|
+
#
|
100
|
+
# Will log errors using {PadUtils.log PadUtils.log}.
|
101
|
+
#
|
102
|
+
# @param key [String] the config key to look for
|
103
|
+
# @param file [String] the file path and name containing the key
|
104
|
+
# @return [String, nil] the value returned as a string or nil
|
105
|
+
# @example
|
106
|
+
# PadUtils.get_config_value("config.eager_load", "production.rb") # => 'true'
|
107
|
+
def self.get_config_value(key, file)
|
108
|
+
content = PadUtils.get_file_content(file)
|
109
|
+
content.each_line do |line|
|
110
|
+
if line.strip.start_with? key
|
111
|
+
return line.gsub(key, "").gsub("=","").strip
|
112
|
+
end
|
113
|
+
end
|
114
|
+
nil
|
115
|
+
rescue Exception => e
|
116
|
+
PadUtils.log("Error in get_config_value", e)
|
117
|
+
end
|
118
|
+
|
119
|
+
# Sets a value in a Ruby config file.
|
120
|
+
#
|
121
|
+
# *This is another method typically used by Padstone to write
|
122
|
+
# new config values in Rails config files such as `production.rb` or
|
123
|
+
# overwrite existing ones.*
|
124
|
+
#
|
125
|
+
# Will log errors using {PadUtils.log PadUtils.log}.
|
126
|
+
#
|
127
|
+
# @param key [String] the config key to find (or create)
|
128
|
+
# @param value [String] the value to set
|
129
|
+
# @param file [String] the file path and name of the file to overwrite
|
130
|
+
# @param comment [String] the optional comment to add before the key
|
131
|
+
# @return [Void] nothing
|
132
|
+
# @example
|
133
|
+
# key = "config.assets.digest"
|
134
|
+
# value = "false"
|
135
|
+
# file = "production.rb"
|
136
|
+
# PadUtils.set_config_value(key, value, file, "Overwritten with PadUtils")
|
137
|
+
def self.set_config_value(key, value, file, comment = nil)
|
138
|
+
# read the config file
|
139
|
+
content = PadUtils.get_file_content(file)
|
140
|
+
|
141
|
+
# set some vars
|
142
|
+
found = false
|
143
|
+
new_content = ""
|
144
|
+
|
145
|
+
# for each line in the file, check if one contains the key.
|
146
|
+
# If the key is found, get its position so we can indent the
|
147
|
+
# config line properly.
|
148
|
+
content.each_line do |line|
|
149
|
+
position = line.index(key)
|
150
|
+
if position != nil
|
151
|
+
new_line = ""
|
152
|
+
(0..position - 1).each do |p|
|
153
|
+
new_line << " "
|
154
|
+
end
|
155
|
+
if comment != nil
|
156
|
+
new_content << "#{new_line}# #{comment}\n"
|
157
|
+
end
|
158
|
+
new_content << "#{new_line}#{key} = #{value}\n"
|
159
|
+
found = true
|
160
|
+
else
|
161
|
+
new_content << line
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
# If the config key was not found, we'll insert it before the last end,
|
166
|
+
# indented with two spaces
|
167
|
+
if !found
|
168
|
+
PadUtils.insert_before_last(original: file, tag: 'end', text: "\n\n # #{comment == nil ? key : comment}\n #{key} = #{value}\n")
|
169
|
+
else
|
170
|
+
PadUtils.write_to_file(file, new_content)
|
171
|
+
end
|
172
|
+
rescue Exception => e
|
173
|
+
PadUtils.log("Error in set_config_value", e)
|
174
|
+
end
|
175
|
+
|
176
|
+
# Replaces a line in a file containing a specific value.
|
177
|
+
#
|
178
|
+
# Will log errors using {PadUtils.log PadUtils.log}.
|
179
|
+
#
|
180
|
+
# @param value [String] the value to search for in a line
|
181
|
+
# @param in_file [String] the file path and name where to search
|
182
|
+
# @param new_value [String] the value replacing the line
|
183
|
+
# @return [Void] nothing
|
184
|
+
# @example
|
185
|
+
# PadUtils.replace_line_containing("Config.port", in_file: "config.rb", new_value: "Config.port = 232")
|
186
|
+
def self.replace_line_containing(value, in_file: nil, new_value: nil)
|
187
|
+
content = PadUtils.get_file_content(in_file)
|
188
|
+
new_content = ""
|
189
|
+
content.each_line do |line|
|
190
|
+
if line.include? value
|
191
|
+
new_content << "#{new_value}\n"
|
192
|
+
else
|
193
|
+
new_content << line
|
194
|
+
end
|
195
|
+
end
|
196
|
+
PadUtils.write_to_file(in_file, new_content)
|
197
|
+
rescue Exception => e
|
198
|
+
PadUtils.log("Error in replace_line_containing", e)
|
199
|
+
end
|
95
200
|
|
96
201
|
# Inserts text before the first occurence of a string.
|
97
202
|
#
|
data/lib/pad_utils/version.rb
CHANGED