module FacebookAds::GraphEdges::ClassMethods

Public Instance Methods

edge_classes() click to toggle source
# File lib/facebook_ads/helpers/edge_helpers.rb, line 29
def edge_classes
  @edge_classes
end
has_edge(name) { |edge_class| ... } click to toggle source
# File lib/facebook_ads/helpers/edge_helpers.rb, line 33
def has_edge(name, &block)
  edge_class = Class.new(Edge)
  yield edge_class

  @edge_classes ||= {}
  @edge_classes[name] = edge_class

  # delegate to field if name collides
  should_delegate = field_types.keys.include?(name)

  define_method(name) do |opts = {}|
    @edge_proxies ||= {}

    @edge_proxies["#{name}_#{self.class.options_hash(opts)}"] ||= begin
      edge_class.new(name, self, should_delegate, opts)
    end
  end
end
options_hash(opts) click to toggle source
# File lib/facebook_ads/helpers/edge_helpers.rb, line 52
def options_hash(opts)
  Digest::MD5.hexdigest(JSON.generate(opts))
end