Class: RudderAnalyticsSync::Operations::Operation

Inherits:
Object
  • Object
show all
Includes:
Constants, Utils
Defined in:
lib/rudder_analytics_sync/operations/operation.rb

Direct Known Subclasses

Alias, Group, Identify, Page, Screen, Track

Constant Summary

Constants included from Constants

Constants::BASE_URL, Constants::DEFAULT_CONTEXT, Constants::DEFAULT_HEADERS, Constants::MAX_BATCH_SIZE, Constants::MAX_MESSAGE_SIZE

Constants included from Utils

Utils::UTC_OFFSET_WITHOUT_COLON, Utils::UTC_OFFSET_WITH_COLON

Instance Method Summary collapse

Methods included from Utils

#date_in_iso8601, #formatted_offset, included, #isoify_dates, #isoify_dates!, #maybe_datetime_in_iso8601, #seconds_to_utc_offset, #symbolize_keys, #time_in_iso8601, #uid, #valid_date?

Constructor Details

#initialize(client, options = {}) ⇒ Operation

Returns a new instance of Operation.



12
13
14
15
16
# File 'lib/rudder_analytics_sync/operations/operation.rb', line 12

def initialize(client, options = {})
  @options = options
  @context = make_context(options[:context])
  @request = Request.new(client)
end

Instance Method Details

#call ⇒ Object



25
26
27
# File 'lib/rudder_analytics_sync/operations/operation.rb', line 25

def call
  raise 'Must be implemented in a subclass'
end

#make_context(option_context) ⇒ Object



18
19
20
21
22
23
# File 'lib/rudder_analytics_sync/operations/operation.rb', line 18

def make_context(option_context)
  if option_context # rubocop:disable Style/SafeNavigation
    option_context.delete(:library)
  end
  DEFAULT_CONTEXT.merge(option_context.to_h)
end