aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/retweet.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/retweet.rb')
-rw-r--r--app/models/retweet.rb40
1 files changed, 20 insertions, 20 deletions
diff --git a/app/models/retweet.rb b/app/models/retweet.rb
index cefd901..b67bd72 100644
--- a/app/models/retweet.rb
+++ b/app/models/retweet.rb
@@ -2,29 +2,29 @@ class Retweet < ActiveRecord::Base
belongs_to :tweet
belongs_to :user
- # Registers retweet event in bulk from an array of Streaming API messages.
- # This doesn't update Tweet#reactions_count.
- #
- # @param [Array] array An array of Streaming API messages.
- def self.create_bulk_from_json(array)
- return if array.empty?
+ class << self
+ # Registers retweet event in bulk from an array of Streaming API messages.
+ # This doesn't update Tweet#reactions_count.
+ #
+ # @param [Array] array An array of Streaming API messages.
+ def create_bulk_from_json(array)
+ return if array.empty?
- objects = array.map do |json|
- {
- id: json[:id],
- user_id: json[:user][:id],
- tweet_id: json[:retweeted_status][:id]
+ keys = [:id, :user_id, :tweet_id]
+ objects = array.map {|json|
+ [json[:id], json[:user][:id], json[:retweeted_status][:id]]
}
- end
- self.import(objects.first.keys, objects.map(&:values), ignore: true)
- end
+ import(keys, objects, ignore: true)
+ end
- # Unregisters retweet events in bulk from array of Streaming API's delete events.
- # This doesn't update Tweet#reactions_count.
- #
- # @param [Array] array An array of Streaming API delete events.
- def self.delete_bulk_from_json(array)
- self.where(id: array.map {|json| json[:delete][:status][:id] }).delete_all
+ # Unregisters retweet events in bulk from array of Streaming API's delete events.
+ # This doesn't update Tweet#reactions_count.
+ #
+ # @param [Array] array An array of Streaming API delete events.
+ def delete_bulk_from_json(array)
+ ids = array.map {|json| json[:delete][:status][:id] }
+ where(id: ids).delete_all
+ end
end
end