From aeb42cc16542acfff3a6be8a604ae11d3f064a1a Mon Sep 17 00:00:00 2001 From: cowboycoded Date: Sun, 13 Feb 2011 14:15:31 -0500 Subject: [PATCH] change back to module. causing problems in dev with reopen implementation --- .../impressionist_appliation_controller.rb | 57 ----------------- app/controllers/impressionist_controller.rb | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 57 deletions(-) delete mode 100644 app/controllers/impressionist_appliation_controller.rb create mode 100644 app/controllers/impressionist_controller.rb diff --git a/app/controllers/impressionist_appliation_controller.rb b/app/controllers/impressionist_appliation_controller.rb deleted file mode 100644 index d006aa7..0000000 --- a/app/controllers/impressionist_appliation_controller.rb +++ /dev/null @@ -1,57 +0,0 @@ -require 'digest/sha2' - -class ApplicationController < ActionController::Base - before_filter :impressionist_app_filter - - def self.impressionist(opts={}) - before_filter { |c| c.impressionist_subapp_filter opts[:actions] } - end - - def impressionist(obj,message=nil) - unless bypass - if obj.respond_to?("impressionable?") - obj.impressions.create(message: message, - request_hash: @impressionist_hash, - ip_address: request.remote_ip, - user_id: user_id) - else - raise "#{obj.class.to_s} is not impressionable!" - end - end - end - - def impressionist_app_filter - @impressionist_hash = Digest::SHA2.hexdigest(Time.now.to_f.to_s+rand(10000).to_s) - end - - def impressionist_subapp_filter(actions=nil) - unless bypass - actions.collect!{|a|a.to_s} unless actions.blank? - if actions.blank? or actions.include?(action_name) - Impression.create(controller_name: controller_name, - action_name: action_name, - user_id: user_id, - request_hash: @request_hash, - request_hash: @impressionist_hash, - ip_address: request.remote_ip, - impressionable_type: controller_name.singularize.camelize, - impressionable_id: params[:id]) - end - end - end - - private - def bypass - Impressionist::Bots::WILD_CARDS.each do |wild_card| - return true if request.user_agent.downcase.include? wild_card - end - Impressionist::Bots::LIST.include? request.user_agent - end - - #use both @current_user and current_user helper - def user_id - user_id = @current_user ? @current_user.id : nil rescue nil - user_id = current_user ? current_user.id : nil rescue nil if user_id.blank? - user_id - end -end \ No newline at end of file diff --git a/app/controllers/impressionist_controller.rb b/app/controllers/impressionist_controller.rb new file mode 100644 index 0000000..20cd935 --- /dev/null +++ b/app/controllers/impressionist_controller.rb @@ -0,0 +1,62 @@ +require 'digest/sha2' + +module ImpressionistController + module ClassMethods + def impressionist(opts={}) + before_filter { |c| c.impressionist_subapp_filter opts[:actions] } + end + end + + module InstanceMethods + def self.included(base) + base.before_filter :impressionist_app_filter + end + + def impressionist(obj,message=nil) + unless bypass + if obj.respond_to?("impressionable?") + obj.impressions.create(:message=> message, + :request_hash=> @impressionist_hash, + :ip_address=> request.remote_ip, + :user_id=> user_id) + else + raise "#{obj.class.to_s} is not impressionable!" + end + end + end + + def impressionist_app_filter + @impressionist_hash = Digest::SHA2.hexdigest(Time.now.to_f.to_s+rand(10000).to_s) + end + + def impressionist_subapp_filter(actions=nil) + unless bypass + actions.collect!{|a|a.to_s} unless actions.blank? + if actions.blank? or actions.include?(action_name) + Impression.create(:controller_name=> controller_name, + :action_name=> action_name, + :user_id=> user_id, + :request_hash=> @impressionist_hash, + :ip_address=> request.remote_ip, + :impressionable_type=> controller_name.singularize.camelize, + :impressionable_id=> params[:id]) + end + end + end + + private + def bypass + Impressionist::Bots::WILD_CARDS.each do |wild_card| + return true if request.user_agent.downcase.include? wild_card + end + Impressionist::Bots::LIST.include? request.user_agent + end + + #use both @current_user and current_user helper + def user_id + user_id = @current_user ? @current_user.id : nil rescue nil + user_id = current_user ? current_user.id : nil rescue nil if user_id.blank? + user_id + end + end +end \ No newline at end of file