module ActiveRecord::Acts::ShareableObject::InstanceMethods

Public Instance Methods

social_meta_properties() click to toggle source
# File lib/acts_as_shareable_object/active_record/acts/shareable_object.rb, line 21
def social_meta_properties
  properties = values_for(ActiveRecord::Acts::ShareableObject::DefaultProperties.all)
  properties.merge! values_for(shareable_options) unless shareable_options.nil?
  properties
end

Private Instance Methods

values_for(properties, namespace = nil) click to toggle source
# File lib/acts_as_shareable_object/active_record/acts/shareable_object.rb, line 29
def values_for(properties, namespace = nil)
  values = {}
  Array(properties).each do |property|
    if property.is_a?(Hash)
      property.map do |k, v|
        method = [namespace, k].compact.join("_")
        values[k] = respond_to?(method) ? send(method) : values_for(v, method)
      end
    else
      method = [namespace, property].compact.join("_")
      values[property] = send(method) if respond_to?(method)
    end
  end
  values.reject{ |k, v| v.empty? }
end