Sha256: dffd742f7f4893692ba9d8f1b3094e048dbf541e1a60eeb0ca9bc3c8d27ded48

Contents?: true

Size: 836 Bytes

Versions: 3

Compression:

Stored size: 836 Bytes

Contents

module ReTrack
  module SessionData
    ATTRIBUTES = [
      :referer_url, :first_url, :user_agent, :first_visited_at, :ip,
      :accept_language, :forwarded_ip
    ]

    def to_hash(request)
      @request = request
      Hash[ATTRIBUTES.map { |k, v| [k, send(k)] }]
    end

    private

      def referer_url
        @request.headers['HTTP_REFERER'].presence || 'none'
      end

      def first_url
        @request.url
      end

      def user_agent
        @request.env['HTTP_USER_AGENT']
      end

      def first_visited_at
        Time.now
      end

      def ip
        @request.remote_ip
      end

      def accept_language
        @request.env['HTTP_ACCEPT_LANGUAGE']
      end

      def forwarded_ip
        @request.env['HTTP_X_FORWARDED_FOR'] || @request.env['HTTP_CLIENT_IP']
      end

    extend self
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
re_track-0.6.0 lib/re_track/session_data.rb
re_track-0.5.2 lib/re_track/session_data.rb
re_track-0.5.1 lib/re_track/session_data.rb