Class: Ip2Geo::Methods::Init
- Inherits:
-
Object
- Object
- Ip2Geo::Methods::Init
- Defined in:
- lib/ip2geo/methods/init.rb
Class Method Summary collapse
-
.call(key, options = {}) ⇒ Boolean
Initializes the SDK with the given API key.
Class Method Details
.call(key, options = {}) ⇒ Boolean
Initializes the SDK with the given API key.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ip2geo/methods/init.rb', line 16 def call(key, = {}) Data::State.auth_key = key Data::State. = .fetch(:version_update_message, true) if .key?(:cache) unless [:cache] == true || [:cache] == false raise ArgumentError, 'Init: "cache" must be a boolean.' end Data::State.cache = [:cache] end if .key?(:cache_max_size) unless [:cache_max_size].is_a?(Integer) raise ArgumentError, 'Init: "cache_max_size" must be an integer.' end if [:cache_max_size] < 10 raise ArgumentError, 'Init: "cache_max_size" must be at least 10.' end if [:cache_max_size] > 50_000 raise ArgumentError, 'Init: "cache_max_size" must be at most 50000.' end Data::State.cache_max_size = [:cache_max_size] end if .key?(:cache_ttl) unless [:cache_ttl].is_a?(Integer) raise ArgumentError, 'Init: "cache_ttl" must be an integer (seconds).' end if [:cache_ttl] < 30 raise ArgumentError, 'Init: "cache_ttl" must be at least 30 (30 seconds).' end if [:cache_ttl] > 86_400 raise ArgumentError, 'Init: "cache_ttl" must be at most 86400 (1 day).' end Data::State.cache_ttl = [:cache_ttl] end Helpers::Cache.clear unless Data::State.cache Helpers::CheckVersion.call true rescue StandardError => e Data::State.reset! warn "[Ip2Geo::Init] Error: #{e.}" false end |