class Object

Public Instance Methods

framed_current_user_id() click to toggle source
# File lib/framed/rails.rb, line 30
def framed_current_user_id
  begin
    current_user.try(:id)
  rescue
    nil
  end
end
framed_event_name() click to toggle source
# File lib/framed/rails.rb, line 5
def framed_event_name
  "#{request.method}_#{params[:controller]}\##{params[:action]}"
end
framed_get_or_make_anonymous_id() click to toggle source
# File lib/framed/rails.rb, line 18
def framed_get_or_make_anonymous_id
  anonymous_id = cookies.signed[Framed.anonymous_cookie]

  if anonymous_id.nil?
    anonymous_id = Framed.new_anonymous_id
    cookie = {:value => anonymous_id, :httponly => true}
    cookies.signed.permanent[Framed.anonymous_cookie] = cookie
  end

  anonymous_id
end
framed_included?(request) click to toggle source

XHR requests are not sent unless explictly enabled or Turbolinks, which is a special kind of XHR

# File lib/framed/rails.rb, line 11
def framed_included?(request)
  return true if Framed.configuration[:include_xhr]
  return true if request.headers.include?('X-XHR-Referer')

  !request.xhr?
end
framed_report_request() click to toggle source
# File lib/framed/rails.rb, line 38
def framed_report_request
  return unless framed_included?(request)

  begin
    anonymous_id = framed_get_or_make_anonymous_id
    user_id = send(Framed.user_id_controller_method)
    cleaned_params = params.except(*Framed.excluded_params).to_h

    event = {
      :type => :track,
      :anonymous_id => anonymous_id,
      :user_id => user_id,
      :event   => framed_event_name,
      :context => {
        :path => request.path,
        :request_method => request.method,
        :rails_controller => params[:controller],
        :rails_action => params[:action]
      },
      :properties => Framed::Utils.flattened_hash({
        :params => cleaned_params
      })
    }

    Framed.report(event)
  rescue StandardError => exc
    Framed.log_error("Failed to report request #{exc}")
  end
end