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.



6
7
8
9
10
# File 'lib/git_fit/timezone/resolver.rb', line 6

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



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

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