42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/microformats/results/parser_result.rb', line 42
def method_missing(sym, *args, &block)
name = sym.to_s
name_dash = name.tr('_', '-') if name.include?('_')
if !@hash[name].nil?
result_hash = @hash[name]
elsif !@hash['properties'].nil? && !@hash['properties'][name].nil?
result_hash = @hash['properties'][name]
elsif !name_dash.nil? && !@hash[name_dash].nil?
result_hash = @hash[name_dash]
elsif !name_dash.nil? && !@hash['properties'].nil? && !@hash['properties'][name_dash].nil?
result_hash = @hash['properties'][name_dash]
else
super(sym, *args, &block)
end
if result_hash.is_a?(Array)
if args[0].nil?
result_hash = result_hash[0]
elsif args[0] == :all
return result_hash.map do |x|
ParserResult.new(x)
end
elsif args[0].to_i < result_hash.count
result_hash = result_hash[args[0].to_i]
else
result_hash = result_hash[0]
end
end
if result_hash.nil? || result_hash.empty?
result_hash
elsif result_hash.is_a?(Hash)
ParserResult.new(result_hash)
else
result_hash
end
end
|