@@ -31,6 +31,7 @@ def initialize(api_key, config = Config.default)
3131
3232 builder . adapter Faraday . default_adapter
3333 end
34+ @offline = false
3435
3536 @worker = create_worker ( )
3637 end
@@ -100,6 +101,10 @@ def create_worker()
100101 # @return [Boolean] whether or not the flag should be enabled, or the default value if the flag is disabled on the LaunchDarkly control panel
101102 def get_flag? ( key , user , default = false )
102103 begin
104+ if @offline
105+ return default
106+ end
107+
103108 value = get_flag_int ( key , user , default )
104109 add_event ( { :kind => 'feature' , :key => key , :user => user , :value => value } )
105110 return value
@@ -110,6 +115,9 @@ def get_flag?(key, user, default=false)
110115 end
111116
112117 def add_event ( event )
118+ if @offline
119+ return
120+ end
113121 if @queue . length ( ) < @config . capacity
114122 event [ :creationDate ] = ( Time . now . to_f * 1000 ) . to_i
115123 @queue . push ( event )
@@ -122,6 +130,27 @@ def add_event(event)
122130 end
123131 end
124132
133+ #
134+ # Registers the user
135+ #
136+ # @param [Hash] The user to register
137+ #
138+ def identify ( user )
139+ add_event ( { :kind => 'identify' , :key => user . key , :user => user } )
140+ end
141+
142+ def set_offline ( )
143+ @offline = true
144+ end
145+
146+ def set_online ( )
147+ @offline = false
148+ end
149+
150+ def is_offline? ( )
151+ return @offline
152+ end
153+
125154 #
126155 # Tracks that a user performed an event
127156 #
@@ -130,7 +159,7 @@ def add_event(event)
130159 # @param data [Hash] A hash containing any additional data associated with the event
131160 #
132161 # @return [void]
133- def send_event ( event_name , user , data )
162+ def track ( event_name , user , data )
134163 add_event ( { :kind => 'custom' , :key => event_name , :user => user , :data => data } )
135164 end
136165
0 commit comments