Class: Solidstats::StylePatrolService

Inherits:
Object
  • Object
show all
Defined in:
app/services/solidstats/style_patrol_service.rb

Constant Summary collapse

CACHE_KEY =
"style_patrol_data"
CACHE_DURATION =
6.hours
STANDARD_JSON_FILE =
Rails.root.join("solidstats", "standard.json")

Class Method Summary collapse

Class Method Details

.collect_data(force_refresh: false) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'app/services/solidstats/style_patrol_service.rb', line 12

def self.collect_data(force_refresh: false)
  return cached_data unless force_refresh || cache_expired?

  analysis_data = analyze_code_quality
  cache_data(analysis_data)
  save_to_standard_json(analysis_data)
  update_summary_json(analysis_data)
  analysis_data
end

.get_summaryObject



22
23
24
25
26
27
28
29
30
31
32
# File 'app/services/solidstats/style_patrol_service.rb', line 22

def self.get_summary
  data = collect_data
  {
    status: data[:status],
    total_files: data.dig(:summary, :total_files) || 0,
    total_offenses: data.dig(:summary, :total_offenses) || 0,
    correctable_count: data.dig(:summary, :correctable_count) || 0,
    last_analyzed: data[:analyzed_at],
    health_score: calculate_health_score(data)
  }
end

.refresh_cacheObject



34
35
36
37
# File 'app/services/solidstats/style_patrol_service.rb', line 34

def self.refresh_cache
  Rails.cache.delete(CACHE_KEY)
  collect_data(force_refresh: true)
end