nice_hash 1.7.3 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +4 -4
- data/LICENSE +21 -21
- data/README.md +654 -646
- data/lib/nice/hash/add_to_ruby.rb +240 -240
- data/lib/nice_hash.rb +720 -718
- metadata +3 -3
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
class String
|
|
2
|
-
###########################################################################
|
|
3
|
-
# When comparing an string and an integer, float or nil, it will be automatically converted to string:
|
|
4
|
-
# "300" == 300 #will return true
|
|
5
|
-
# 200.1=="200.1" #will return true
|
|
6
|
-
# ""==nil #will return true
|
|
7
|
-
###########################################################################
|
|
8
|
-
def ==(par)
|
|
9
|
-
if par.is_a?(Integer) || par.nil? || par.is_a?(Float)
|
|
10
|
-
super(par.to_s)
|
|
11
|
-
else
|
|
12
|
-
super(par)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
###########################################################################
|
|
17
|
-
# In case the string is a json it will return the keys specified. the keys need to be provided as symbols.
|
|
18
|
-
# In case the string is not a json then it will notify the error and return empty Hash
|
|
19
|
-
# input:
|
|
20
|
-
# keys:
|
|
21
|
-
# 1 value with key or an array of keys
|
|
22
|
-
# In case the key supplied doesn't exist in the hash then it will be returned nil for that one
|
|
23
|
-
# output:
|
|
24
|
-
# if keys given: a hash of (keys, values) or the value, if the key is found more than once in the json string, then it will be return a hash op arrays.
|
|
25
|
-
# if no keys given: the json string as a ruby structure.
|
|
26
|
-
# if no json string or wrong json string, an empty hash.
|
|
27
|
-
###########################################################################
|
|
28
|
-
def json(*keys)
|
|
29
|
-
require 'json'
|
|
30
|
-
result = {}
|
|
31
|
-
begin
|
|
32
|
-
feed_symbols = JSON.parse(self, symbolize_names: true)
|
|
33
|
-
if !keys.empty?
|
|
34
|
-
result_tmp = if keys[0].is_a?(Symbol)
|
|
35
|
-
NiceHash.get_values(feed_symbols, keys)
|
|
36
|
-
else
|
|
37
|
-
{}
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
if result_tmp.size == 1
|
|
41
|
-
result = if result_tmp.values.is_a?(Array) && (result_tmp.values.size == 1)
|
|
42
|
-
result_tmp.values[0]
|
|
43
|
-
else
|
|
44
|
-
result_tmp.values
|
|
45
|
-
end
|
|
46
|
-
else
|
|
47
|
-
result_tmp.each do |key, value|
|
|
48
|
-
result[key] = if (value.is_a?(Array) || value.is_a?(Hash)) && (value.size == 1)
|
|
49
|
-
value[0]
|
|
50
|
-
else
|
|
51
|
-
value
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
else
|
|
57
|
-
result = feed_symbols
|
|
58
|
-
end
|
|
59
|
-
rescue StandardError => stack
|
|
60
|
-
puts stack.to_s
|
|
61
|
-
end
|
|
62
|
-
result
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
class Array
|
|
67
|
-
###########################################################################
|
|
68
|
-
# Stores a value on the location indicated
|
|
69
|
-
# input:
|
|
70
|
-
# where: (Array)
|
|
71
|
-
# value
|
|
72
|
-
# examples:
|
|
73
|
-
# my_array.bury([3, 0], "doom") # array of array
|
|
74
|
-
# my_array.bury([2, 1, :original],"the value to set") #array of array of hash
|
|
75
|
-
###########################################################################
|
|
76
|
-
def bury(where, value)
|
|
77
|
-
me = self
|
|
78
|
-
where[0..-2].each do |key|
|
|
79
|
-
me = me[key]
|
|
80
|
-
end
|
|
81
|
-
me[where[-1]] = value
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
###########################################################################
|
|
85
|
-
# In case of an array of json strings will return the keys specified. The keys need to be provided as symbols
|
|
86
|
-
# input:
|
|
87
|
-
# keys:
|
|
88
|
-
# 1 value with key or an array of keys
|
|
89
|
-
# In case the key supplied doesn't exist in the hash then it will be return nil for that one
|
|
90
|
-
# output:
|
|
91
|
-
# if keys given: a hash of (keys, values) or the value, if the key is found more than once in the json string, then it will be return a hash of arrays
|
|
92
|
-
# if no keys given, an empty hash
|
|
93
|
-
###########################################################################
|
|
94
|
-
def json(*keys)
|
|
95
|
-
json_string = "[#{join(',')}]"
|
|
96
|
-
json_string.json(*keys)
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
require 'date'
|
|
101
|
-
class Date
|
|
102
|
-
###########################################################################
|
|
103
|
-
# It will generate a random date
|
|
104
|
-
# In case days is a Date it will generate until that date
|
|
105
|
-
# In case days is an Integer it will generate from the self date + the number of days specified
|
|
106
|
-
# examples:
|
|
107
|
-
# puts Date.today.random(60) # random date from today to 60 days after
|
|
108
|
-
# puts Date.strptime('01-09-2005', '%d-%m-%Y').random(100)
|
|
109
|
-
# puts Date.new(2003,10,31).random(Date.today) #Random date from 2003/10/31 to today
|
|
110
|
-
###########################################################################
|
|
111
|
-
def random(days)
|
|
112
|
-
if days.is_a?(Date)
|
|
113
|
-
dif_dates = self - (days + 1)
|
|
114
|
-
date_result = self + rand(dif_dates)
|
|
115
|
-
date_result
|
|
116
|
-
elsif days.is_a?(Integer)
|
|
117
|
-
date_result = self + rand(days + 1)
|
|
118
|
-
date_result
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
class Time
|
|
124
|
-
# It will return in the format: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
125
|
-
# Example: puts Time.now.stamp
|
|
126
|
-
def stamp
|
|
127
|
-
strftime('%Y-%m-%dT%H:%M:%S.%LZ')
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
class Hash
|
|
132
|
-
###########################################################################
|
|
133
|
-
# Returns the value of the key specified in case doesn't exist a Hash method with the same name
|
|
134
|
-
# The keys can be accessed also adding underscore to avoid problems with existent methods
|
|
135
|
-
# Also set values in case = supplied
|
|
136
|
-
# examples:
|
|
137
|
-
# my_hash.address.correct
|
|
138
|
-
# my_hash._address._correct
|
|
139
|
-
# my_hash.city
|
|
140
|
-
# my_hash._city
|
|
141
|
-
# my_hash.city="Paris"
|
|
142
|
-
# my_hash.products[1].price.wrong="AAAAA"
|
|
143
|
-
###########################################################################
|
|
144
|
-
def method_missing(m, *arguments, &block)
|
|
145
|
-
m = m[1..-1].to_sym if m[0] == '_'
|
|
146
|
-
if key?(m)
|
|
147
|
-
self[m]
|
|
148
|
-
elsif m.to_s[-1] == '='
|
|
149
|
-
self[m.to_s.chop.to_sym] = arguments[0]
|
|
150
|
-
else
|
|
151
|
-
super
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
###########################################################################
|
|
156
|
-
# Stores a value on the location indicated
|
|
157
|
-
# input:
|
|
158
|
-
# where: (Array)
|
|
159
|
-
# value
|
|
160
|
-
# examples:
|
|
161
|
-
# my_hash.bury([:bip, :doom], "doom") # hash of hash
|
|
162
|
-
# my_hash.bury([:original, 1, :doom],"the value to set") #hash of array of hash
|
|
163
|
-
###########################################################################
|
|
164
|
-
def bury(where, value)
|
|
165
|
-
me = self
|
|
166
|
-
where[0..-2].each do |key|
|
|
167
|
-
me = me[key]
|
|
168
|
-
end
|
|
169
|
-
key = where[-1]
|
|
170
|
-
key = [key] unless where[-1].is_a?(Array) # for the case same value for different keys, for example pwd1, pwd2, pwd3
|
|
171
|
-
key.each do |k|
|
|
172
|
-
me[k] = value
|
|
173
|
-
end
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
###########################################################################
|
|
177
|
-
# It will filter the hash by the key specified on select_hash_key.
|
|
178
|
-
# In case a subhash specified on a value it will be selected only the value of the key specified on select_hash_key
|
|
179
|
-
# More info: NiceHash.select_key
|
|
180
|
-
###########################################################################
|
|
181
|
-
def select_key(select_hash_key)
|
|
182
|
-
NiceHash.select_key(self, select_hash_key)
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
###########################################################################
|
|
186
|
-
# It will generate a new hash with the values generated from the string patterns and select fields specified.
|
|
187
|
-
# In case supplied select_hash_key and a subhash specified on a value it will be selected only the value of the key specified on select_hash_key
|
|
188
|
-
# If expected_errors specified the values will be generated with the specified errors.
|
|
189
|
-
# More info: NiceHash.generate
|
|
190
|
-
# alias: gen
|
|
191
|
-
###########################################################################
|
|
192
|
-
def generate(select_hash_key = nil, expected_errors: [], **synonyms)
|
|
193
|
-
NiceHash.generate(self, select_hash_key, expected_errors: expected_errors, **synonyms)
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
###########################################################################
|
|
197
|
-
# Validates a given values_hash_to_validate with string patterns and select fields
|
|
198
|
-
# More info: NiceHash.validate
|
|
199
|
-
# alias: val
|
|
200
|
-
###########################################################################
|
|
201
|
-
def validate(select_hash_key = nil, values_hash_to_validate)
|
|
202
|
-
NiceHash.validate([self, select_hash_key], values_hash_to_validate, only_patterns: false)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
###########################################################################
|
|
206
|
-
# Validates a given values_hash_to_validate with string patterns
|
|
207
|
-
# More info: NiceHash.validate
|
|
208
|
-
###########################################################################
|
|
209
|
-
def validate_patterns(select_hash_key = nil, values_hash_to_validate)
|
|
210
|
-
NiceHash.validate([self, select_hash_key], values_hash_to_validate, only_patterns: true)
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
###########################################################################
|
|
214
|
-
# It will return an array of the keys where we are using string patterns.
|
|
215
|
-
# More info: NiceHash.pattern_fields
|
|
216
|
-
###########################################################################
|
|
217
|
-
def pattern_fields(*select_hash_key)
|
|
218
|
-
NiceHash.pattern_fields(self, *select_hash_key)
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
###########################################################################
|
|
222
|
-
# It will return an array of the keys where we are using select values of the kind: "value1|value2|value3".
|
|
223
|
-
# More info: NiceHash.select_fields
|
|
224
|
-
###########################################################################
|
|
225
|
-
def select_fields(*select_hash_key)
|
|
226
|
-
NiceHash.select_fields(self, *select_hash_key)
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
###########################################################################
|
|
230
|
-
# Get values of the keys supplied from the Hash structure.
|
|
231
|
-
# More info: NiceHash.get_values
|
|
232
|
-
###########################################################################
|
|
233
|
-
def get_values(*keys)
|
|
234
|
-
NiceHash.get_values(self, keys)
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
alias gen generate
|
|
238
|
-
alias val validate
|
|
239
|
-
alias patterns pattern_fields
|
|
240
|
-
end
|
|
1
|
+
class String
|
|
2
|
+
###########################################################################
|
|
3
|
+
# When comparing an string and an integer, float or nil, it will be automatically converted to string:
|
|
4
|
+
# "300" == 300 #will return true
|
|
5
|
+
# 200.1=="200.1" #will return true
|
|
6
|
+
# ""==nil #will return true
|
|
7
|
+
###########################################################################
|
|
8
|
+
def ==(par)
|
|
9
|
+
if par.is_a?(Integer) || par.nil? || par.is_a?(Float)
|
|
10
|
+
super(par.to_s)
|
|
11
|
+
else
|
|
12
|
+
super(par)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
###########################################################################
|
|
17
|
+
# In case the string is a json it will return the keys specified. the keys need to be provided as symbols.
|
|
18
|
+
# In case the string is not a json then it will notify the error and return empty Hash
|
|
19
|
+
# input:
|
|
20
|
+
# keys:
|
|
21
|
+
# 1 value with key or an array of keys
|
|
22
|
+
# In case the key supplied doesn't exist in the hash then it will be returned nil for that one
|
|
23
|
+
# output:
|
|
24
|
+
# if keys given: a hash of (keys, values) or the value, if the key is found more than once in the json string, then it will be return a hash op arrays.
|
|
25
|
+
# if no keys given: the json string as a ruby structure.
|
|
26
|
+
# if no json string or wrong json string, an empty hash.
|
|
27
|
+
###########################################################################
|
|
28
|
+
def json(*keys)
|
|
29
|
+
require 'json'
|
|
30
|
+
result = {}
|
|
31
|
+
begin
|
|
32
|
+
feed_symbols = JSON.parse(self, symbolize_names: true)
|
|
33
|
+
if !keys.empty?
|
|
34
|
+
result_tmp = if keys[0].is_a?(Symbol)
|
|
35
|
+
NiceHash.get_values(feed_symbols, keys)
|
|
36
|
+
else
|
|
37
|
+
{}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
if result_tmp.size == 1
|
|
41
|
+
result = if result_tmp.values.is_a?(Array) && (result_tmp.values.size == 1)
|
|
42
|
+
result_tmp.values[0]
|
|
43
|
+
else
|
|
44
|
+
result_tmp.values
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
result_tmp.each do |key, value|
|
|
48
|
+
result[key] = if (value.is_a?(Array) || value.is_a?(Hash)) && (value.size == 1)
|
|
49
|
+
value[0]
|
|
50
|
+
else
|
|
51
|
+
value
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
else
|
|
57
|
+
result = feed_symbols
|
|
58
|
+
end
|
|
59
|
+
rescue StandardError => stack
|
|
60
|
+
puts stack.to_s
|
|
61
|
+
end
|
|
62
|
+
result
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class Array
|
|
67
|
+
###########################################################################
|
|
68
|
+
# Stores a value on the location indicated
|
|
69
|
+
# input:
|
|
70
|
+
# where: (Array)
|
|
71
|
+
# value
|
|
72
|
+
# examples:
|
|
73
|
+
# my_array.bury([3, 0], "doom") # array of array
|
|
74
|
+
# my_array.bury([2, 1, :original],"the value to set") #array of array of hash
|
|
75
|
+
###########################################################################
|
|
76
|
+
def bury(where, value)
|
|
77
|
+
me = self
|
|
78
|
+
where[0..-2].each do |key|
|
|
79
|
+
me = me[key]
|
|
80
|
+
end
|
|
81
|
+
me[where[-1]] = value
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
###########################################################################
|
|
85
|
+
# In case of an array of json strings will return the keys specified. The keys need to be provided as symbols
|
|
86
|
+
# input:
|
|
87
|
+
# keys:
|
|
88
|
+
# 1 value with key or an array of keys
|
|
89
|
+
# In case the key supplied doesn't exist in the hash then it will be return nil for that one
|
|
90
|
+
# output:
|
|
91
|
+
# if keys given: a hash of (keys, values) or the value, if the key is found more than once in the json string, then it will be return a hash of arrays
|
|
92
|
+
# if no keys given, an empty hash
|
|
93
|
+
###########################################################################
|
|
94
|
+
def json(*keys)
|
|
95
|
+
json_string = "[#{join(',')}]"
|
|
96
|
+
json_string.json(*keys)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
require 'date'
|
|
101
|
+
class Date
|
|
102
|
+
###########################################################################
|
|
103
|
+
# It will generate a random date
|
|
104
|
+
# In case days is a Date it will generate until that date
|
|
105
|
+
# In case days is an Integer it will generate from the self date + the number of days specified
|
|
106
|
+
# examples:
|
|
107
|
+
# puts Date.today.random(60) # random date from today to 60 days after
|
|
108
|
+
# puts Date.strptime('01-09-2005', '%d-%m-%Y').random(100)
|
|
109
|
+
# puts Date.new(2003,10,31).random(Date.today) #Random date from 2003/10/31 to today
|
|
110
|
+
###########################################################################
|
|
111
|
+
def random(days)
|
|
112
|
+
if days.is_a?(Date)
|
|
113
|
+
dif_dates = self - (days + 1)
|
|
114
|
+
date_result = self + rand(dif_dates)
|
|
115
|
+
date_result
|
|
116
|
+
elsif days.is_a?(Integer)
|
|
117
|
+
date_result = self + rand(days + 1)
|
|
118
|
+
date_result
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
class Time
|
|
124
|
+
# It will return in the format: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
125
|
+
# Example: puts Time.now.stamp
|
|
126
|
+
def stamp
|
|
127
|
+
strftime('%Y-%m-%dT%H:%M:%S.%LZ')
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class Hash
|
|
132
|
+
###########################################################################
|
|
133
|
+
# Returns the value of the key specified in case doesn't exist a Hash method with the same name
|
|
134
|
+
# The keys can be accessed also adding underscore to avoid problems with existent methods
|
|
135
|
+
# Also set values in case = supplied
|
|
136
|
+
# examples:
|
|
137
|
+
# my_hash.address.correct
|
|
138
|
+
# my_hash._address._correct
|
|
139
|
+
# my_hash.city
|
|
140
|
+
# my_hash._city
|
|
141
|
+
# my_hash.city="Paris"
|
|
142
|
+
# my_hash.products[1].price.wrong="AAAAA"
|
|
143
|
+
###########################################################################
|
|
144
|
+
def method_missing(m, *arguments, &block)
|
|
145
|
+
m = m[1..-1].to_sym if m[0] == '_'
|
|
146
|
+
if key?(m)
|
|
147
|
+
self[m]
|
|
148
|
+
elsif m.to_s[-1] == '='
|
|
149
|
+
self[m.to_s.chop.to_sym] = arguments[0]
|
|
150
|
+
else
|
|
151
|
+
super
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
###########################################################################
|
|
156
|
+
# Stores a value on the location indicated
|
|
157
|
+
# input:
|
|
158
|
+
# where: (Array)
|
|
159
|
+
# value
|
|
160
|
+
# examples:
|
|
161
|
+
# my_hash.bury([:bip, :doom], "doom") # hash of hash
|
|
162
|
+
# my_hash.bury([:original, 1, :doom],"the value to set") #hash of array of hash
|
|
163
|
+
###########################################################################
|
|
164
|
+
def bury(where, value)
|
|
165
|
+
me = self
|
|
166
|
+
where[0..-2].each do |key|
|
|
167
|
+
me = me[key]
|
|
168
|
+
end
|
|
169
|
+
key = where[-1]
|
|
170
|
+
key = [key] unless where[-1].is_a?(Array) # for the case same value for different keys, for example pwd1, pwd2, pwd3
|
|
171
|
+
key.each do |k|
|
|
172
|
+
me[k] = value
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
###########################################################################
|
|
177
|
+
# It will filter the hash by the key specified on select_hash_key.
|
|
178
|
+
# In case a subhash specified on a value it will be selected only the value of the key specified on select_hash_key
|
|
179
|
+
# More info: NiceHash.select_key
|
|
180
|
+
###########################################################################
|
|
181
|
+
def select_key(select_hash_key)
|
|
182
|
+
NiceHash.select_key(self, select_hash_key)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
###########################################################################
|
|
186
|
+
# It will generate a new hash with the values generated from the string patterns and select fields specified.
|
|
187
|
+
# In case supplied select_hash_key and a subhash specified on a value it will be selected only the value of the key specified on select_hash_key
|
|
188
|
+
# If expected_errors specified the values will be generated with the specified errors.
|
|
189
|
+
# More info: NiceHash.generate
|
|
190
|
+
# alias: gen
|
|
191
|
+
###########################################################################
|
|
192
|
+
def generate(select_hash_key = nil, expected_errors: [], **synonyms)
|
|
193
|
+
NiceHash.generate(self, select_hash_key, expected_errors: expected_errors, **synonyms)
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
###########################################################################
|
|
197
|
+
# Validates a given values_hash_to_validate with string patterns and select fields
|
|
198
|
+
# More info: NiceHash.validate
|
|
199
|
+
# alias: val
|
|
200
|
+
###########################################################################
|
|
201
|
+
def validate(select_hash_key = nil, values_hash_to_validate)
|
|
202
|
+
NiceHash.validate([self, select_hash_key], values_hash_to_validate, only_patterns: false)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
###########################################################################
|
|
206
|
+
# Validates a given values_hash_to_validate with string patterns
|
|
207
|
+
# More info: NiceHash.validate
|
|
208
|
+
###########################################################################
|
|
209
|
+
def validate_patterns(select_hash_key = nil, values_hash_to_validate)
|
|
210
|
+
NiceHash.validate([self, select_hash_key], values_hash_to_validate, only_patterns: true)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
###########################################################################
|
|
214
|
+
# It will return an array of the keys where we are using string patterns.
|
|
215
|
+
# More info: NiceHash.pattern_fields
|
|
216
|
+
###########################################################################
|
|
217
|
+
def pattern_fields(*select_hash_key)
|
|
218
|
+
NiceHash.pattern_fields(self, *select_hash_key)
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
###########################################################################
|
|
222
|
+
# It will return an array of the keys where we are using select values of the kind: "value1|value2|value3".
|
|
223
|
+
# More info: NiceHash.select_fields
|
|
224
|
+
###########################################################################
|
|
225
|
+
def select_fields(*select_hash_key)
|
|
226
|
+
NiceHash.select_fields(self, *select_hash_key)
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
###########################################################################
|
|
230
|
+
# Get values of the keys supplied from the Hash structure.
|
|
231
|
+
# More info: NiceHash.get_values
|
|
232
|
+
###########################################################################
|
|
233
|
+
def get_values(*keys)
|
|
234
|
+
NiceHash.get_values(self, keys)
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
alias gen generate
|
|
238
|
+
alias val validate
|
|
239
|
+
alias patterns pattern_fields
|
|
240
|
+
end
|