Class: GitFit::ExportCLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/git_fit/cli/export.rb

Instance Method Summary collapse

Instance Method Details

#csvObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/git_fit/cli/export.rb', line 33

def csv
  config = git_fit_config
  conn = GitFit::DB::Connection.new(config.db_path)
  conn.migrate!
  db = conn.db
  path = options[:output] || config.export_config.dig('csv', 'path') || 'site/workouts.csv'
  filter = options[:activity]&.map(&:strip)&.map(&:downcase)
  count = Export::CSV.new(db: db, output: path, activity_filter: filter).call
  say_status :done, "Exported #{count} activities to #{path}", :green
rescue StandardError => e
  say_status :error, "CSV export failed: #{e.message}", :red
end

#jsonObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/git_fit/cli/export.rb', line 16

def json
  config = git_fit_config
  conn = GitFit::DB::Connection.new(config.db_path)
  conn.migrate!
  db = conn.db
  path = options[:output] || config.export_config.dig('json', 'path') || 'site/activities.json'
  filter = options[:activity]&.map(&:strip)&.map(&:downcase)
  count = Export::JSON.new(db: db, output: path, activity_filter: filter).call
  say_status :done, "Exported #{count} activities to #{path}", :green
rescue StandardError => e
  say_status :error, "JSON export failed: #{e.message}", :red
end

#statsObject



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/git_fit/cli/export.rb', line 50

def stats
  config = git_fit_config
  conn = GitFit::DB::Connection.new(config.db_path)
  conn.migrate!
  db = conn.db
  path = options[:output] || config.export_config.dig('stats', 'path') || 'site/stats.json'
  filter = options[:activity]&.map(&:strip)&.map(&:downcase)
  count = Export::Stats.new(db: db, output: path, activity_filter: filter).call
  say_status :done, "Exported stats for #{count} activities to #{path}", :green
rescue StandardError => e
  say_status :error, "Stats export failed: #{e.message}", :red
end