module FacebookAds::FieldTypes
Public Instance Methods
for(type_spec)
click to toggle source
# File lib/facebook_ads/field_types.rb, line 34 def for(type_spec) if type_spec.is_a?(Hash) type_key = type_spec.keys[0] if field_type = lookup(type_key) field_type.new(type_spec[type_key]) else raise "Invalid type: #{type_key}" end else if (field_type = lookup(type_spec)) field_type.new else begin ad_object_class = FacebookAds.const_get(type_spec) field_type = lookup('ad_object') field_type.new(ad_object_class) rescue NameError # fallback to string class if nothing matches lookup('string').new end end end end
lookup(type_name)
click to toggle source
# File lib/facebook_ads/field_types.rb, line 30 def lookup(type_name) @@registry && @@registry[type_name] end
register(*type_names)
click to toggle source
# File lib/facebook_ads/field_types.rb, line 23 def register(*type_names) @@registry ||= {} type_names.each do |type_name| @@registry[type_name] = self end end