Class: GitFit::Timezone::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/git_fit/timezone/resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, finder: nil) ⇒ Resolver

Returns a new instance of Resolver.



8
9
10
11
12
# File 'lib/git_fit/timezone/resolver.rb', line 8

def initialize(config, finder: nil)
  default = config.is_a?(Hash) ? config.dig('system', 'timezone') : config
  @finder = finder || TimezoneFinder.create
  @default = default || 'Asia/Shanghai'
end

Instance Method Details

#resolve(lat, lng) ⇒ Object



14
15
16
17
18
19
# File 'lib/git_fit/timezone/resolver.rb', line 14

def resolve(lat, lng)
  return @default unless lat && lng
  tz = @finder.timezone_at(lat: lat.to_f, lng: lng.to_f)
  tz = nil if tz.is_a?(String) && tz.empty?
  tz || @default
end