use before_action for rails 5, maintain backwards compat.
This commit is contained in:
parent
6f22014650
commit
5ed366de82
|
@ -139,7 +139,7 @@ Usage
|
||||||
@widget.impressionist_count(:message=>"pageview", :filter=>:all)
|
@widget.impressionist_count(:message=>"pageview", :filter=>:all)
|
||||||
|
|
||||||
Logging impressions for authenticated users happens automatically. If you have
|
Logging impressions for authenticated users happens automatically. If you have
|
||||||
a current_user helper or use @current_user in your before_filter to set your
|
a current_user helper or use @current_user in your before_filter (or before_action in Rails >= 5.0) to set your
|
||||||
authenticated user, current_user.id will be written to the user_id field in the
|
authenticated user, current_user.id will be written to the user_id field in the
|
||||||
impressions table.
|
impressions table.
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,21 @@ require 'digest/sha2'
|
||||||
module ImpressionistController
|
module ImpressionistController
|
||||||
module ClassMethods
|
module ClassMethods
|
||||||
def impressionist(opts={})
|
def impressionist(opts={})
|
||||||
before_filter { |c| c.impressionist_subapp_filter(opts) }
|
if Rails::VERSION::MAJOR >= 5
|
||||||
|
before_action { |c| c.impressionist_subapp_filter(opts) }
|
||||||
|
else
|
||||||
|
before_filter { |c| c.impressionist_subapp_filter(opts) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module InstanceMethods
|
module InstanceMethods
|
||||||
def self.included(base)
|
def self.included(base)
|
||||||
base.before_filter :impressionist_app_filter
|
if Rails::VERSION::MAJOR >= 5
|
||||||
|
base.before_action :impressionist_app_filter
|
||||||
|
else
|
||||||
|
base.before_filter :impressionist_app_filter
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def impressionist(obj,message=nil,opts={})
|
def impressionist(obj,message=nil,opts={})
|
||||||
|
@ -103,7 +111,7 @@ module ImpressionistController
|
||||||
request_param = params_hash
|
request_param = params_hash
|
||||||
impressions.detect{|impression| impression.params == request_param }.nil?
|
impressions.detect{|impression| impression.params == request_param }.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
# creates the query to check for uniqueness
|
# creates the query to check for uniqueness
|
||||||
def unique_query(unique_opts,impressionable=nil)
|
def unique_query(unique_opts,impressionable=nil)
|
||||||
full_statement = direct_create_statement({},impressionable)
|
full_statement = direct_create_statement({},impressionable)
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
class ApplicationController < ActionController::Base
|
class ApplicationController < ActionController::Base
|
||||||
protect_from_forgery
|
protect_from_forgery
|
||||||
before_filter :secondary_before_filter
|
if Rails::VERSION::MAJOR >= 5
|
||||||
|
before_action :secondary_before_action
|
||||||
|
else
|
||||||
|
before_filter :secondary_before_action
|
||||||
|
end
|
||||||
|
|
||||||
def secondary_before_filter
|
def secondary_before_action
|
||||||
@test_secondary_before_filter = "this is a test"
|
@test_secondary_before_action = "this is a test"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
class ArticlesController < ApplicationController
|
class ArticlesController < ApplicationController
|
||||||
before_filter :test_current_user_var
|
if Rails::VERSION::MAJOR >= 5
|
||||||
|
before_action :test_current_user_var
|
||||||
|
else
|
||||||
|
before_filter :test_current_user_var
|
||||||
|
end
|
||||||
|
|
||||||
def test_current_user_var
|
def test_current_user_var
|
||||||
if session[:user_id]
|
if session[:user_id]
|
||||||
|
|
|
@ -23,7 +23,7 @@ TestApp::Application.configure do
|
||||||
config.action_dispatch.best_standards_support = :builtin
|
config.action_dispatch.best_standards_support = :builtin
|
||||||
|
|
||||||
# Raise exception on mass assignment protection for Active Record models
|
# Raise exception on mass assignment protection for Active Record models
|
||||||
config.active_record.mass_assignment_sanitizer = :strict
|
# config.active_record.mass_assignment_sanitizer = :strict
|
||||||
|
|
||||||
# Log the query plan for queries taking more than this (works
|
# Log the query plan for queries taking more than this (works
|
||||||
# with SQLite, MySQL, and PostgreSQL)
|
# with SQLite, MySQL, and PostgreSQL)
|
||||||
|
|
|
@ -30,7 +30,7 @@ TestApp::Application.configure do
|
||||||
config.action_mailer.delivery_method = :test
|
config.action_mailer.delivery_method = :test
|
||||||
|
|
||||||
# Raise exception on mass assignment protection for Active Record models
|
# Raise exception on mass assignment protection for Active Record models
|
||||||
config.active_record.mass_assignment_sanitizer = :strict
|
# config.active_record.mass_assignment_sanitizer = :strict
|
||||||
|
|
||||||
# Print deprecation notices to the stderr
|
# Print deprecation notices to the stderr
|
||||||
config.active_support.deprecation = :stderr
|
config.active_support.deprecation = :stderr
|
||||||
|
|
|
@ -26,7 +26,7 @@ describe ArticlesController do
|
||||||
Article.first.impressions.last.action_name.should eq "show"
|
Article.first.impressions.last.action_name.should eq "show"
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should log the user_id if user is authenticated (@current_user before_filter method)" do
|
it "should log the user_id if user is authenticated (@current_user before_action method)" do
|
||||||
session[:user_id] = 123
|
session[:user_id] = 123
|
||||||
get "show", :id=> 1
|
get "show", :id=> 1
|
||||||
Article.first.impressions.last.user_id.should eq 123
|
Article.first.impressions.last.user_id.should eq 123
|
||||||
|
@ -72,5 +72,3 @@ describe ArticlesController do
|
||||||
Impression.last.referrer.should eq nil
|
Impression.last.referrer.should eq nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ describe Impressionist do
|
||||||
expect(ApplicationController).to respond_to(method)
|
expect(ApplicationController).to respond_to(method)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should include the before_filter method in ApplicationController" do
|
it "should include the before_action method in ApplicationController" do
|
||||||
filters = ApplicationController._process_action_callbacks.select { |c| c.kind == :before }
|
filters = ApplicationController._process_action_callbacks.select { |c| c.kind == :before }
|
||||||
filters.collect{|filter|filter.filter}.include?(:impressionist_app_filter).should be_true
|
filters.collect{|filter|filter.filter}.include?(:impressionist_app_filter).should be_true
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue