Delete remaining impressionist files
This commit is contained in:
parent
7440727acd
commit
4d7a53866e
|
@ -1,13 +0,0 @@
|
||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
platforms :jruby do
|
|
||||||
gem 'activerecord-jdbcsqlite3-adapter'
|
|
||||||
gem 'jdbc-sqlite3'
|
|
||||||
gem 'jruby-openssl'
|
|
||||||
end
|
|
||||||
|
|
||||||
platforms :ruby, :mswin, :mingw do
|
|
||||||
gem 'sqlite3'
|
|
||||||
end
|
|
||||||
|
|
||||||
gemspec
|
|
|
@ -1,62 +0,0 @@
|
||||||
module Impressionist
|
|
||||||
module Impressionable
|
|
||||||
extend ActiveSupport::Concern
|
|
||||||
|
|
||||||
module ClassMethods
|
|
||||||
attr_accessor :impressionist_cache_options
|
|
||||||
@impressionist_cache_options = nil
|
|
||||||
|
|
||||||
def impressionist_counter_cache_options
|
|
||||||
if @impressionist_cache_options
|
|
||||||
options = { :column_name => :impressions_count, :unique => false }
|
|
||||||
options.merge!(@impressionist_cache_options) if @impressionist_cache_options.is_a?(Hash)
|
|
||||||
options
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionist_counter_caching?
|
|
||||||
impressionist_counter_cache_options.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
def counter_caching?
|
|
||||||
::ActiveSupport::Deprecation.warn("#counter_caching? is deprecated; please use #impressionist_counter_caching? instead")
|
|
||||||
impressionist_counter_caching?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionable?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionist_count(options={})
|
|
||||||
options.reverse_merge!(:filter=>:request_hash, :start_date=>nil, :end_date=>Time.now)
|
|
||||||
imps = options[:start_date].blank? ? impressions : impressions.where("created_at>=? and created_at<=?",options[:start_date],options[:end_date])
|
|
||||||
options[:filter] == :all ? imps.count : imps.count(options[:filter], :distinct => true)
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_impressionist_counter_cache
|
|
||||||
cache_options = self.class.impressionist_counter_cache_options
|
|
||||||
column_name = cache_options[:column_name].to_sym
|
|
||||||
count = cache_options[:unique] ? impressionist_count(:filter => :ip_address) : impressionist_count
|
|
||||||
old_count = send(column_name) || 0
|
|
||||||
self.class.update_counters(id, column_name => (count - old_count))
|
|
||||||
end
|
|
||||||
|
|
||||||
# OLD METHODS - DEPRECATE IN V0.5
|
|
||||||
def impression_count(start_date=nil,end_date=Time.now)
|
|
||||||
impressionist_count({:start_date=>start_date, :end_date=>end_date, :filter=>:all})
|
|
||||||
end
|
|
||||||
|
|
||||||
def unique_impression_count(start_date=nil,end_date=Time.now)
|
|
||||||
impressionist_count({:start_date=>start_date, :end_date=>end_date, :filter=> :request_hash})
|
|
||||||
end
|
|
||||||
|
|
||||||
def unique_impression_count_ip(start_date=nil,end_date=Time.now)
|
|
||||||
impressionist_count({:start_date=>start_date, :end_date=>end_date, :filter=> :ip_address})
|
|
||||||
end
|
|
||||||
|
|
||||||
def unique_impression_count_session(start_date=nil,end_date=Time.now)
|
|
||||||
impressionist_count({:start_date=>start_date, :end_date=>end_date, :filter=> :session_hash})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,13 +0,0 @@
|
||||||
module Impressionist
|
|
||||||
module Generators
|
|
||||||
class ImpressionistGenerator < Rails::Generators::Base
|
|
||||||
hook_for :orm
|
|
||||||
source_root File.expand_path('../templates', __FILE__)
|
|
||||||
|
|
||||||
def copy_config_file
|
|
||||||
template 'impression.rb', 'config/initializers/impression.rb'
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,5 +0,0 @@
|
||||||
# Use this hook to configure impressionist parameters
|
|
||||||
Impressionist.setup do |config|
|
|
||||||
# Define ORM. Could be :active_record (default), :mongo_mapper or :mongoid
|
|
||||||
# config.orm = :active_record
|
|
||||||
end
|
|
|
@ -1,10 +0,0 @@
|
||||||
ImpressionistController::InstanceMethods.send(:define_method, :direct_create_statement) do |query_params={}|
|
|
||||||
# creates a statment hash that contains default values for creating an impression.
|
|
||||||
# if :impressionable_id is a valid ObjectId then convert it into one
|
|
||||||
base = (defined? Moped) ? Moped::BSON : BSON
|
|
||||||
query_params.reverse_merge!(
|
|
||||||
:impressionable_type => controller_name.singularize.camelize,
|
|
||||||
:impressionable_id=> !base::ObjectId.legal?(params[:id]) ? params[:id] : base::ObjectId.from_string(params[:id])
|
|
||||||
)
|
|
||||||
associative_create_statement(query_params)
|
|
||||||
end
|
|
|
@ -1,33 +0,0 @@
|
||||||
require "impressionist"
|
|
||||||
require "rails"
|
|
||||||
|
|
||||||
module Impressionist
|
|
||||||
class Engine < Rails::Engine
|
|
||||||
initializer 'impressionist.model' do |app|
|
|
||||||
require "#{root}/app/models/impressionist/impressionable.rb"
|
|
||||||
if Impressionist.orm == :active_record && defined? ActiveRecord
|
|
||||||
require "impressionist/models/active_record/impression.rb"
|
|
||||||
require "impressionist/models/active_record/impressionist/impressionable.rb"
|
|
||||||
ActiveRecord::Base.send(:include, Impressionist::Impressionable)
|
|
||||||
elsif Impressionist.orm == :mongo_mapper
|
|
||||||
require "impressionist/models/mongo_mapper/impression.rb"
|
|
||||||
require "impressionist/models/mongo_mapper/impressionist/impressionable.rb"
|
|
||||||
MongoMapper::Document.plugin Impressionist::Impressionable
|
|
||||||
elsif Impressionist.orm == :mongoid
|
|
||||||
require 'impressionist/models/mongoid/impression.rb'
|
|
||||||
require 'impressionist/models/mongoid/impressionist/impressionable.rb'
|
|
||||||
Mongoid::Document.send(:include, Impressionist::Impressionable)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
initializer 'impressionist.controller' do
|
|
||||||
if Impressionist.orm == :mongoid
|
|
||||||
require 'impressionist/controllers/mongoid/impressionist_controller.rb'
|
|
||||||
end
|
|
||||||
ActiveSupport.on_load(:action_controller) do
|
|
||||||
include ImpressionistController::InstanceMethods
|
|
||||||
extend ImpressionistController::ClassMethods
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,32 +0,0 @@
|
||||||
class Impression
|
|
||||||
include Mongoid::Document
|
|
||||||
include Mongoid::Timestamps
|
|
||||||
|
|
||||||
attr_accessible :impressionable_type, :impressionable_field, :impressionable_id, :user_id,
|
|
||||||
:controller_name, :action_name, :view_name, :request_hash, :ip_address,
|
|
||||||
:session_hash, :message, :referrer
|
|
||||||
|
|
||||||
belongs_to :impressionable, polymorphic: true
|
|
||||||
|
|
||||||
field :user_id
|
|
||||||
field :controller_name
|
|
||||||
field :action_name
|
|
||||||
field :view_name
|
|
||||||
field :request_hash
|
|
||||||
field :ip_address
|
|
||||||
field :session_hash
|
|
||||||
field :message
|
|
||||||
field :referrer
|
|
||||||
|
|
||||||
set_callback(:create, :after) do |doc|
|
|
||||||
unless impressionable_id.nil?
|
|
||||||
impressionable_class = doc.impressionable_type.constantize
|
|
||||||
|
|
||||||
if impressionable_class.impressionist_counter_cache_options
|
|
||||||
resource = impressionable_class.find(doc.impressionable_id)
|
|
||||||
resource.try(:update_impressionist_counter_cache)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
|
@ -1,52 +0,0 @@
|
||||||
module Impressionist
|
|
||||||
module Impressionable
|
|
||||||
extend ActiveSupport::Concern
|
|
||||||
|
|
||||||
module ClassMethods
|
|
||||||
def is_impressionable(options={})
|
|
||||||
has_many :impressions, as: :impressionable, dependent: :destroy
|
|
||||||
@impressionist_cache_options = options[:counter_cache]
|
|
||||||
if !@impressionist_cache_options.nil?
|
|
||||||
opts = impressionist_counter_cache_options
|
|
||||||
field opts[:column_name], type: Integer
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionist_counter_cache_options
|
|
||||||
if @impressionist_cache_options
|
|
||||||
options = { :column_name => :impressions_count, :unique => false }
|
|
||||||
options.merge!(@impressionist_cache_options) if @impressionist_cache_options.is_a?(Hash)
|
|
||||||
options
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionist_counter_caching?
|
|
||||||
impressionist_counter_cache_options.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
def counter_caching?
|
|
||||||
::ActiveSupport::Deprecation.warn("#counter_caching? is deprecated; please use #impressionist_counter_caching? instead")
|
|
||||||
impressionist_counter_caching?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionable?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def impressionist_count(options={})
|
|
||||||
options.reverse_merge!(:filter=>:request_hash, :start_date=>nil, :end_date=>Time.now)
|
|
||||||
imps = options[:start_date].blank? ? impressions : impressions.between(created_at: options[:start_date]..options[:end_date])
|
|
||||||
options[:filter] == :all ? imps.count : imps.where(options[:filter].ne => nil).count
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_impressionist_counter_cache
|
|
||||||
cache_options = self.class.impressionist_counter_cache_options
|
|
||||||
column_name = cache_options[:column_name].to_sym
|
|
||||||
count = cache_options[:unique] ? impressionist_count(:filter => :ip_address) : impressionist_count
|
|
||||||
old_count = send(column_name) || 0
|
|
||||||
self.inc(column_name, (count - old_count))
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,50 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe Impression do
|
|
||||||
fixtures :widgets
|
|
||||||
|
|
||||||
before(:each) do
|
|
||||||
@widget = Widget.find(1)
|
|
||||||
Impression.destroy_all
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "self#impressionist_counter_caching?" do
|
|
||||||
it "should know when counter caching is enabled" do
|
|
||||||
Widget.should be_impressionist_counter_caching
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should know when counter caching is disabled" do
|
|
||||||
Article.should_not be_impressionist_counter_caching
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "self#counter_caching?" do
|
|
||||||
it "should know when counter caching is enabled" do
|
|
||||||
ActiveSupport::Deprecation.should_receive(:warn)
|
|
||||||
Widget.should be_counter_caching
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should know when counter caching is disabled" do
|
|
||||||
ActiveSupport::Deprecation.should_receive(:warn)
|
|
||||||
Article.should_not be_counter_caching
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#update_impressionist_counter_cache" do
|
|
||||||
it "should update the counter cache column to reflect the correct number of impressions" do
|
|
||||||
lambda {
|
|
||||||
@widget.impressions.create(:request_hash => 'abcd1234')
|
|
||||||
@widget.reload
|
|
||||||
}.should change(@widget, :impressions_count).from(0).to(1)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should not update the timestamp on the impressable" do
|
|
||||||
lambda {
|
|
||||||
@widget.impressions.create(:request_hash => 'abcd1234')
|
|
||||||
@widget.reload
|
|
||||||
}.should_not change(@widget, :updated_at)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
Loading…
Reference in New Issue