Sha256: 34c39da66752c70c273575a4f7d076cadc7ee4a7bb2b515c6fd2110730c2e8b8

Contents?: true

Size: 1.48 KB

Versions: 19

Compression:

Stored size: 1.48 KB

Contents

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

        10.times do
          author = ::Actor.all.sample
          owner = author
          relation_ids = [Relation::Public.instance.id]

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

        if SocialStream.relation_model == :custom
          ties = Tie.allowing('create', 'activity').all
          PowerLaw.new ties.sample(ties.count / 3) 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

      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
    end
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
social_stream-2.1.1 base/lib/social_stream/population/activity_object.rb
social_stream-2.1.0 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.1.0 lib/social_stream/population/activity_object.rb
social_stream-2.0.4 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.4 lib/social_stream/population/activity_object.rb
social_stream-2.0.3 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.3 lib/social_stream/population/activity_object.rb
social_stream-2.0.2 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.2 lib/social_stream/population/activity_object.rb
social_stream-2.0.1 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.1 lib/social_stream/population/activity_object.rb
social_stream-2.0.0 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.0 lib/social_stream/population/activity_object.rb
social_stream-2.0.0.beta3 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.0.beta3 lib/social_stream/population/activity_object.rb
social_stream-2.0.0.beta2 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.0.beta2 lib/social_stream/population/activity_object.rb
social_stream-2.0.0.beta1 base/lib/social_stream/population/activity_object.rb
social_stream-base-2.0.0.beta1 lib/social_stream/population/activity_object.rb