Class: SourceMonitor::Analytics::ScrapeRecommendations
- Inherits:
-
Object
- Object
- SourceMonitor::Analytics::ScrapeRecommendations
- Defined in:
- lib/source_monitor/analytics/scrape_recommendations.rb
Instance Method Summary collapse
- #candidate?(source_id) ⇒ Boolean
- #candidate_ids ⇒ Object
- #candidate_ids_for(source_ids) ⇒ Object
- #candidates_count ⇒ Object
- #filter_params ⇒ Object
-
#initialize(threshold: SourceMonitor.config.scraping.scrape_recommendation_threshold) ⇒ ScrapeRecommendations
constructor
A new instance of ScrapeRecommendations.
- #relation ⇒ Object
Constructor Details
#initialize(threshold: SourceMonitor.config.scraping.scrape_recommendation_threshold) ⇒ ScrapeRecommendations
Returns a new instance of ScrapeRecommendations.
6 7 8 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 6 def initialize(threshold: SourceMonitor.config.scraping.scrape_recommendation_threshold) @threshold = threshold.to_i end |
Instance Method Details
#candidate?(source_id) ⇒ Boolean
29 30 31 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 29 def candidate?(source_id) candidate_ids.include?(source_id) end |
#candidate_ids ⇒ Object
18 19 20 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 18 def candidate_ids @candidate_ids ||= relation.pluck(:id) end |
#candidate_ids_for(source_ids) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 22 def candidate_ids_for(source_ids) ids = Array(source_ids).map { |source_id| source_id.respond_to?(:id) ? source_id.id : source_id }.compact return [] if ids.empty? relation.where(id: ids).pluck(:id) end |
#candidates_count ⇒ Object
14 15 16 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 14 def candidates_count @candidates_count ||= relation.count end |
#filter_params ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 33 def filter_params { "scraping_enabled_eq" => "false", "active_eq" => "true", "avg_feed_words_lt" => threshold.to_s } end |
#relation ⇒ Object
10 11 12 |
# File 'lib/source_monitor/analytics/scrape_recommendations.rb', line 10 def relation @relation ||= SourceMonitor::Queries::ScrapeCandidatesQuery.new(threshold: threshold).call end |