Class: SocialStream::Population::ActivityObject

Inherits:
Object
  • Object
show all
Defined in:
lib/social_stream/population/activity_object.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass, &block) ⇒ ActivityObject

Returns a new instance of ActivityObject.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/social_stream/population/activity_object.rb', line 4

def initialize(klass, &block)
  puts "#{ klass.name } population"
  start_time = Time.now

  50.times do
    author = Actor.all[rand(Actor.all.size)]
    owner = author
    relation_ids = [Relation::Public.instance.id]

    populate klass, author, owner, relation_ids, &block
  end

  if SocialStream.relation_model == :custom
    PowerLaw.new(Tie.allowing('create', 'activity').all) do |t|

      author = t.receiver
      owner  = t.sender
      relation_ids = Array(t.relation_id)

      populate klass, author, owner, relation_ids, &block
    end
  end

  end_time = Time.now
  puts '   -> ' +  (end_time - start_time).round(4).to_s + 's'
end

Instance Method Details

#populate(klass, author, owner, relation_ids) {|o| ... } ⇒ Object

Yields:

  • (o)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/social_stream/population/activity_object.rb', line 31

def populate klass, author, owner, relation_ids, &block
  user_author = ( author.subject_type == "User" ? author : author.user_author )
  timestamps = Timestamps.new

  o = klass.new

  o.created_at = timestamps.created
  o.updated_at = timestamps.updated
  o.author_id  = author.id
  o.owner_id   = owner.id
  o.user_author_id = user_author.id
  o.relation_ids = relation_ids

  yield o

  o.save!

  o.post_activity.update_attributes(:created_at => o.created_at,
                                    :updated_at => o.updated_at)

  o
end