7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/random_facts.rb', line 7
def self.process(options = {})
file = File.read("#{ROOT}/data/facts.json")
data_hash = JSON.parse(file)
random_numbers = []
final_data = []
if options[:type].present?
filtered_data = data_hash['facts'].select { |fact| fact['type'] == options[:type] }
else
filtered_data = data_hash['facts']
end
if options[:size].present? && filtered_data.size > 0
while random_numbers.size < options[:size]
number = rand(filtered_data.size - 1)
unless random_numbers.include? number
random_numbers << number
end
end
random_numbers.each do |index|
final_data << filtered_data[index]
end
else
final_data = filtered_data
end
final_data.map { |fact| fact['fact'] }
end
|