Class: Rangefinder::SST
- Inherits:
-
Object
- Object
- Rangefinder::SST
- Defined in:
- lib/rangefinder/sst.rb,
lib/rangefinder/sst/version.rb
Constant Summary collapse
- DEFAULT_ENDPOINT =
'rangefinderapp.com'- DEFAULT_PORT =
8001- DEFAULT_SCRIPT =
'rangefinderapp.com/track1.js'- VERSION =
"0.0.2"- @@rand =
Proc.new { Kernel.rand 1000000 }
Instance Attribute Summary collapse
-
#endpoint ⇒ Object
Returns the value of attribute endpoint.
-
#port ⇒ Object
Returns the value of attribute port.
-
#script ⇒ Object
Returns the value of attribute script.
-
#server_id ⇒ Object
readonly
Returns the value of attribute server_id.
-
#site_id ⇒ Object
Returns the value of attribute site_id.
-
#site_key ⇒ Object
Returns the value of attribute site_key.
Class Method Summary collapse
- .rand ⇒ Object
-
.rand=(r) ⇒ Object
Change the random server ID generator.
Instance Method Summary collapse
- #connect ⇒ Object
-
#initialize(opts = {}) ⇒ SST
constructor
A new instance of SST.
- #track(visit) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ SST
Returns a new instance of SST.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rangefinder/sst.rb', line 22 def initialize(opts = {}) @site_key = opts[:site_key] || '' @site_id = opts[:site_id] || 0 @server_id = 0 @socket = nil @script = opts[:script] || DEFAULT_SCRIPT @endpoint = opts[:endpoint] || DEFAULT_ENDPOINT @port = opts[:port] || DEFAULT_PORT end |
Instance Attribute Details
#endpoint ⇒ Object
Returns the value of attribute endpoint.
10 11 12 |
# File 'lib/rangefinder/sst.rb', line 10 def endpoint @endpoint end |
#port ⇒ Object
Returns the value of attribute port.
10 11 12 |
# File 'lib/rangefinder/sst.rb', line 10 def port @port end |
#script ⇒ Object
Returns the value of attribute script.
10 11 12 |
# File 'lib/rangefinder/sst.rb', line 10 def script @script end |
#server_id ⇒ Object (readonly)
Returns the value of attribute server_id.
12 13 14 |
# File 'lib/rangefinder/sst.rb', line 12 def server_id @server_id end |
#site_id ⇒ Object
Returns the value of attribute site_id.
10 11 12 |
# File 'lib/rangefinder/sst.rb', line 10 def site_id @site_id end |
#site_key ⇒ Object
Returns the value of attribute site_key.
10 11 12 |
# File 'lib/rangefinder/sst.rb', line 10 def site_key @site_key end |
Class Method Details
.rand ⇒ Object
16 |
# File 'lib/rangefinder/sst.rb', line 16 def rand; @@rand; end |
.rand=(r) ⇒ Object
Change the random server ID generator. eg. Rangefinder::SST.rand = Proc.new { MySpecial.rand }
19 |
# File 'lib/rangefinder/sst.rb', line 19 def rand=(r) @@rand = r; end |
Instance Method Details
#connect ⇒ Object
54 55 56 57 |
# File 'lib/rangefinder/sst.rb', line 54 def connect @socket = UDPSocket.new @socket.connect(@endpoint, @port) end |
#track(visit) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rangefinder/sst.rb', line 33 def track(visit) connect if @socket.nil? @id = self.class.rand.call packet = 'track:'+Addressable::URI.form_encode( :key => @site_key, :page => visit[:page], :referrer => visit[:referrer], :user_agent => visit[:user_agent], :ipv4 => visit[:ipv4], :time => Time.now.utc.to_i, :id => @id )+"\n" if packet.length < 1499 @socket.send packet, 0 else @id = -2 # Too long end return @id end |