Method: FbGraph::Post#initialize
- Defined in:
- lib/fb_graph/post.rb
#initialize(identifier, attributes = {}) ⇒ Post
Returns a new instance of Post.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/fb_graph/post.rb', line 11 def initialize(identifier, attributes = {}) super if (from = attributes[:from]) @from = if from[:category] Page.new(from[:id], from) else User.new(from[:id], from) end end @to = [] if attributes[:to] Collection.new(attributes[:to]).each do |to| @to << if to[:category] Page.new(to[:id], to) elsif to[:start_time] Event.new(to[:id], to) elsif to[:version] Group.new(to[:id], to) elsif to[:namespace] Application.new(to[:id], to) else User.new(to[:id], to) end end end @with_tags = [] if attributes[:with_tags] Collection.new(attributes[:with_tags]).each do |tagged| @with_tags << User.new(tagged[:id], tagged) end end @message = attributes[:message] @message_tags = [] if ( = attributes[:message_tags]) .each do |index, | .each do || @message_tags << TaggedObject.new([:id], ) end end end @picture = attributes[:picture] @link = attributes[:link] @name = attributes[:name] @caption = attributes[:caption] @description = attributes[:description] @source = attributes[:source] @properties = [] if attributes[:properties] attributes[:properties].each do |property| @properties << Property.new(property) end end @icon = attributes[:icon] @actions = [] if attributes[:actions] attributes[:actions].each do |action| @actions << Action.new(action) end end if attributes[:privacy] @privacy = if attributes[:privacy].is_a?(Privacy) attributes[:privacy] else Privacy.new(attributes[:privacy]) end end @type = attributes[:type] @graph_object_id = attributes[:object_id] if attributes[:application] @application = Application.new(attributes[:application][:id], attributes[:application]) end if attributes[:targeting] @targeting = if attributes[:targeting].is_a?(Targeting) attributes[:targeting] else Targeting.new(attributes[:targeting]) end end if attributes[:created_time] @created_time = Time.parse(attributes[:created_time]).utc end if attributes[:updated_time] @updated_time = Time.parse(attributes[:updated_time]).utc end @story = attributes[:story] @story_tags = [] if = attributes[:story_tags] .each do |index, story_tag| story_tag.each do |_story_tag_| @story_tags << TaggedObject.new(_story_tag_[:id], _story_tag_) end end end if (place = attributes[:place]) @place = case place when Place place when String, Integer Place.new(place) when Hash Place.new(place[:id], place) end end # cached connection cache_collections attributes, :comments, :likes end |