20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/browscapper/reader/csv_reader.rb', line 20
def load(file)
csv = CSV_ENGINE.open(file, 'rb')
2.times { csv.shift }
= csv.shift
entries = Hash.new
csv.each do |l|
entry = UserAgent.new
.each_with_index do |v, i|
entry[v] = case l[i]
when 'false'
false
when 'true'
true
when /^\d+$/
l[i].to_i
else
l[i]
end
end
entry.user_agent = if entry.user_agent
entry.user_agent.sub!(/^\[(.+)\]$/, '\1')
elsif entry.browser
entry.browser
end
entry.pattern = pattern_to_regexp(entry.property_name.to_s)
if entries[entry.parent]
entry.merge!(entries[entry.parent])
end
entries[entry.user_agent] = entry
end
entries
end
|