Class: GitFit::Sync::Lorem

Inherits:
Base
  • Object
show all
Defined in:
lib/git_fit/sync/lorem.rb

Constant Summary collapse

DEMO_ACTIVITIES =
[
  { id: 'alpha_001', name: 'Lorem Morning Run', sport_category: 'run',
    distance: 5200.0, moving_time: 1800, elapsed_time: 2000,
    start_date: '2025-01-15T06:30:00Z', start_date_local: '2025-01-15T14:30:00+08:00',
    location_country: 'CN', average_heartrate: 148.0, max_heartrate: 165.0,
    average_cadence: 172.0, max_cadence: 185.0, average_power: nil, max_power: nil,
    average_temperature: 22.0, calories: 380,
    average_speed: 5200.0 / 1800, elevation_gain: 125.0, external_id: 'lorem_001' },
  { id: 'beta_002', name: 'Ipsum Cycling Session', sport_category: 'ride',
    distance: 35000.0, moving_time: 5400, elapsed_time: 6000,
    start_date: '2025-01-14T08:00:00Z', start_date_local: '2025-01-14T16:00:00+08:00',
    location_country: 'CN', average_heartrate: 138.0, max_heartrate: 155.0,
    average_cadence: 85.0, max_cadence: 105.0, average_power: 185.0, max_power: 420.0,
    average_temperature: 18.0, calories: 850,
    average_speed: 35000.0 / 5400, elevation_gain: 450.0, external_id: 'lorem_002' },
  { id: 'gamma_003', name: 'Dolor Hike', sport_category: 'hike',
    distance: 12000.0, moving_time: 7200, elapsed_time: 8100,
    start_date: '2025-01-13T09:00:00Z', start_date_local: '2025-01-13T17:00:00+08:00',
    location_country: 'CN', average_heartrate: 122.0, max_heartrate: 142.0,
    average_cadence: 110.0, max_cadence: 135.0, average_power: nil, max_power: nil,
    average_temperature: 15.0, calories: 620,
    average_speed: 12000.0 / 7200, elevation_gain: 820.0, external_id: 'lorem_003' },
  { id: 'delta_004', name: 'Sit Amet Walk', sport_category: 'walk',
    distance: 5000.0, moving_time: 3600, elapsed_time: 3900,
    start_date: '2025-01-12T18:00:00Z', start_date_local: '2025-01-12T18:00:00+08:00',
    location_country: 'CN', average_heartrate: 108.0, max_heartrate: 125.0,
    average_cadence: 105.0, max_cadence: 118.0, average_power: nil, max_power: nil,
    average_temperature: 20.0, calories: 280,
    average_speed: 5000.0 / 3600, elevation_gain: 35.0, external_id: 'lorem_004' },
  { id: 'epsilon_005', name: 'Consectetur Swim', sport_category: 'swim',
    distance: 2000.0, moving_time: 2400, elapsed_time: 2700,
    start_date: '2025-01-11T07:00:00Z', start_date_local: '2025-01-11T15:00:00+08:00',
    location_country: 'CN', average_heartrate: 135.0, max_heartrate: 150.0,
    average_cadence: 28.0, max_cadence: 32.0, average_power: nil, max_power: nil,
    average_temperature: 26.0, calories: 520,
    average_speed: 2000.0 / 2400, elevation_gain: 0.0, external_id: 'lorem_005' }
].freeze

Instance Attribute Summary

Attributes inherited from Base

#progress_reported

Instance Method Summary collapse

Methods inherited from Base

adapters, #before_call, #build_progress_info, #call, camelcase_to_snakecase, config_key, #initialize, register_adapter, register_config, register_test_adapter, test_adapters

Constructor Details

This class inherits a constructor from GitFit::Sync::Base

Instance Method Details

#authenticateObject



51
52
53
# File 'lib/git_fit/sync/lorem.rb', line 51

def authenticate
  true
end

#pending_idsObject



55
56
57
# File 'lib/git_fit/sync/lorem.rb', line 55

def pending_ids
  DEMO_ACTIVITIES.map { |act| { id: act[:id], type: act[:sport_category], summary: act } }
end

#process_one(pending) ⇒ Object



59
60
61
62
63
64
65
66
67
68
# File 'lib/git_fit/sync/lorem.rb', line 59

def process_one(pending)
  attrs = build_attrs(pending[:summary])

  dir = raw_dir
  FileUtils.mkdir_p(dir)
  File.write(File.join(dir, "#{pending[:id]}.json"), JSON.generate(pending[:summary]))

  upsert_activity(attrs)
  attrs
end

#raw_path(platform_id) ⇒ Object



70
71
72
# File 'lib/git_fit/sync/lorem.rb', line 70

def raw_path(platform_id)
  File.join(raw_dir, "#{platform_id}.json")
end