From efa71b8123a7404b6af67f7c2094be23d59106a1 Mon Sep 17 00:00:00 2001 From: John Kodumal Date: Mon, 26 Jan 2015 14:01:18 -0800 Subject: [PATCH] Add identify an set_offline, rename send_event to track --- lib/ldclient-rb/ldclient.rb | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/ldclient-rb/ldclient.rb b/lib/ldclient-rb/ldclient.rb index 1eeafd3a..3b004485 100644 --- a/lib/ldclient-rb/ldclient.rb +++ b/lib/ldclient-rb/ldclient.rb @@ -31,6 +31,7 @@ def initialize(api_key, config = Config.default) builder.adapter Faraday.default_adapter end + @offline = false @worker = create_worker() end @@ -100,6 +101,10 @@ def create_worker() # @return [Boolean] whether or not the flag should be enabled, or the default value if the flag is disabled on the LaunchDarkly control panel def get_flag?(key, user, default=false) begin + if @offline + return default + end + value = get_flag_int(key, user, default) add_event({:kind => 'feature', :key => key, :user => user, :value => value}) return value @@ -110,6 +115,9 @@ def get_flag?(key, user, default=false) end def add_event(event) + if @offline + return + end if @queue.length() < @config.capacity event[:creationDate] = (Time.now.to_f * 1000).to_i @queue.push(event) @@ -122,6 +130,27 @@ def add_event(event) end end + # + # Registers the user + # + # @param [Hash] The user to register + # + def identify(user) + add_event({:kind => 'identify', :key => user.key, :user => user}) + end + + def set_offline() + @offline = true + end + + def set_online() + @offline = false + end + + def is_offline?() + return @offline + end + # # Tracks that a user performed an event # @@ -130,7 +159,7 @@ def add_event(event) # @param data [Hash] A hash containing any additional data associated with the event # # @return [void] - def send_event(event_name, user, data) + def track(event_name, user, data) add_event({:kind => 'custom', :key => event_name, :user => user, :data => data }) end