Module: Mitamirri::Helper
- Defined in:
- lib/mitamirri/helper.rb
Instance Method Summary collapse
- #page_break ⇒ Object
- #track_action(kind, args = {}) ⇒ Object
- #track_event_code(kind, event, elem_id, action_label, referrer, remote_ip, site, url, session_id, destination = nil) ⇒ Object
- #track_window_event_code(kind, action_label, referrer, remote_ip, site, url, session_id) ⇒ Object
Instance Method Details
#page_break ⇒ Object
5 6 7 |
# File 'lib/mitamirri/helper.rb', line 5 def page_break %{<div class="page_break" /><p>(Continued on next page)</p></div>}.html_safe end |
#track_action(kind, args = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/mitamirri/helper.rb', line 9 def track_action(kind, args={}) action_label = args[:label] action_label ||= kind == 'view' ? 'Page View' : 'Click' destination = args[:destination] referrer = request.referrer remote_ip = request.remote_ip user_agent = request.user_agent site = URI.parse(request.url).host url = request.url session_id = request.[:id] elem_id = args[:observe] begin query = CGI.parse(URI.parse(request.referrer).query) if request.referrer keywords = query['q'].blank? ? query['p'] : query['q'] rescue keywords = nil end if kind == 'view' TrackableAction.create_from_params( :kind => 'view', :label => action_label, :referrer => referrer, :referring_keywords => keywords, :session_id => session_id, :user_agent => user_agent, :remote_ip => remote_ip, :site => site, :url => url ) "" elsif kind == 'conversion' TrackableAction.create_from_params( :kind => 'conversion', :label => action_label, :referrer => referrer, :referring_keywords => keywords, :session_id => session_id, :remote_ip => remote_ip, :site => site, :url => url ) "" elsif kind == 'clickthrough' track_event_code(kind, 'mousedown', elem_id, action_label, referrer, remote_ip, site, url, session_id, destination).html_safe elsif kind == 'click' track_event_code(kind, 'mousedown', elem_id, action_label, referrer, remote_ip, site, url, session_id).html_safe elsif kind == 'mouseover' track_event_code(kind, 'mouseover', elem_id, action_label, referrer, remote_ip, site, url, session_id).html_safe elsif kind == 'scroll' track_window_event_code(kind, action_label || 'Scrolled Page', referrer, remote_ip, site, url, session_id).html_safe end end |
#track_event_code(kind, event, elem_id, action_label, referrer, remote_ip, site, url, session_id, destination = nil) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/mitamirri/helper.rb', line 64 def track_event_code(kind, event, elem_id, action_label, referrer, remote_ip, site, url, session_id, destination = nil) %{<script type="text/javascript"> Event.observe(window, 'load', function() { Event.observe('#{elem_id}', '#{event}', track_#{event}_#{elem_id}_event); }); function track_#{event}_#{elem_id}_event() { new Ajax.Updater('tracking', '/trackable_actions/', {asynchronous:true, evalScripts:true, parameters:'action=create&kind=#{kind}&label=#{action_label}&referrer=#{referrer}&remote_ip=#{remote_ip}&site=#{site}&url=#{url}&session_id=#{session_id}&destination=#{destination}'}) Event.stopObserving('#{elem_id}', '#{event}', track_#{event}_#{elem_id}_event); } </script>}.html_safe end |
#track_window_event_code(kind, action_label, referrer, remote_ip, site, url, session_id) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/mitamirri/helper.rb', line 76 def track_window_event_code(kind, action_label, referrer, remote_ip, site, url, session_id) %{<script type="text/javascript"> Event.observe(window, 'load', function() { Event.observe(window, '#{kind}', track_window_action); }); function track_window_action() { new Ajax.Updater('tracking', '/trackable_actions/', {asynchronous:true, evalScripts:true, parameters:'action=create&kind=#{kind}&label=#{action_label}&referrer=#{referrer}&remote_ip=#{remote_ip}&site=#{site}&url=#{url}&session_id=#{session_id}'}); Event.stopObserving(window, '#{kind}', track_window_action); } </script>}.html_safe end |