37
38
39
40
41
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
|
# File 'lib/facebooker/adapters/adapter_base.rb', line 37
def self.load_adapter(params)
config_key_base = params[:config_key_base]
config_key_base += "_" if config_key_base && config_key_base.length > 0
unless api_key = (params[:fb_sig_api_key] || facebooker_config["#{config_key_base}api_key"])
raise Facebooker::AdapterBase::UnableToLoadAdapter
end
unless facebooker_config
return self.default_adapter(params)
end
facebooker_config.each do |key,value|
next unless value == api_key
key_base = key.match(/(.*)[_]?api_key/)[1]
adapter_class_name = if !key_base || key_base.length == 0
"FacebookAdapter"
else
facebooker_config[key_base + "adapter"]
end
adapter_class = "Facebooker::#{adapter_class_name}".constantize
adapter_config = {}
facebooker_config.each do |key,value|
if (match = key.match(/#{key_base}[_]?(.*)/))
adapter_config[match[1]] = value
end
end
return adapter_class.new(adapter_config)
end
return self.default_adapter(params)
end
|