Sha256: 3bd6b8318313854e19251a2a071470700aa41e02c801d77fec52a07898f2228a

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

module FbGraph2
  class Post < Node
    include Edge::Comments
    include Edge::Insights
    include Edge::Likes::LikeeContext
    include Edge::SharedPosts

    register_attributes(
      raw: [
        :caption, :description, :icon, :is_hidden, :link, :message, :name, :object_id, :picture,
        :source, :status_type, :story, :type
      ],
      time: [:created_time, :updated_time],
      app: [:application],
      place: [:place],
      profile: [:from],
      profiles: [:to, :with_tags],
      actions: [:actions],
      custom: [
        :message_tags, :privacy, :properties, :shares
      ]
    )

    def initialize(id, attributes = {})
      super
      if attributes.include? :message_tags
        self.message_tags = attributes[:message_tags].inject({}) do |message_tags, (key, values)|
          _message_tags_ = values.collect do |value|
            TaggedProfile.new value[:id], value
          end
          message_tags.merge! key => _message_tags_
        end
      end
      if attributes.include? :privacy
        self.privacy = Struct::Privacy.new attributes[:privacy]
      end
      if attributes.include? :properties
        self.properties = attributes[:properties].collect do |property|
          Struct::Property.new property
        end
      end
      if attributes.include? :shares
        self.shares = Struct::Share.new attributes[:shares]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fb_graph2-0.8.0 lib/fb_graph2/post.rb