Merge pull request #30 from tute/master

git ignores files deleted in pull#29
This commit is contained in:
Erik Michaels-Ober 2012-03-12 15:10:41 -07:00
commit 6c18d5b52c
7 changed files with 67 additions and 65 deletions

3
.gitignore vendored
View File

@ -4,4 +4,7 @@
/rdoc
/test_app/db/schema.rb
/test_app/db/migrate/*_create_impressions_table.rb
/test_app/doc
/test_app/test
/test_app/vendor
Gemfile.lock

View File

@ -1,10 +1,6 @@
module Impressionist
module Impressionable
def self.included(base)
base.extend ClassMethods
base.send(:include, InstanceMethods)
end
extend ActiveSupport::Concern
module ClassMethods
attr_accessor :cache_options
@ -28,44 +24,41 @@ module Impressionist
end
end
module InstanceMethods
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])
if options[:filter]!=:all
imps = imps.select(options[:filter]).group(options[:filter])
end
imps.all.size
end
def update_counter_cache
cache_options = self.class.counter_cache_options
column_name = cache_options[:column_name].to_sym
count = cache_options[:unique] ? impressionist_count(:filter => :ip_address) : impressionist_count
update_attribute(column_name, 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
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])
if options[:filter]!=:all
imps = imps.select(options[:filter]).group(options[:filter])
end
imps.all.size
end
def update_counter_cache
cache_options = self.class.counter_cache_options
column_name = cache_options[:column_name].to_sym
count = cache_options[:unique] ? impressionist_count(:filter => :ip_address) : impressionist_count
update_attribute(column_name, 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

View File

@ -0,0 +1,21 @@
module ActiveRecord
module Generators
class ImpressionistGenerator < Rails::Generators::Base
include Rails::Generators::Migration
source_root File.join(File.dirname(__FILE__), 'templates')
def self.next_migration_number(dirname)
sleep 1
if ActiveRecord::Base.timestamped_migrations
Time.now.utc.strftime("%Y%m%d%H%M%S")
else
"%.3d" % (current_migration_number(dirname) + 1)
end
end
def create_migration_file
migration_template 'create_impressions_table.rb', 'db/migrate/create_impressions_table.rb'
end
end
end
end

View File

@ -1,20 +0,0 @@
require 'rails/generators'
require 'rails/generators/migration'
class ImpressionistGenerator < Rails::Generators::Base
include Rails::Generators::Migration
source_root File.join(File.dirname(__FILE__), 'templates')
def self.next_migration_number(dirname)
sleep 1
if ActiveRecord::Base.timestamped_migrations
Time.now.utc.strftime("%Y%m%d%H%M%S")
else
"%.3d" % (current_migration_number(dirname) + 1)
end
end
def create_migration_file
migration_template 'create_impressions_table.rb', 'db/migrate/create_impressions_table.rb'
end
end

View File

@ -0,0 +1,7 @@
module Impressionist
module Generators
class ImpressionistGenerator < Rails::Generators::Base
hook_for :orm
end
end
end

View File

@ -2,11 +2,9 @@ source 'https://rubygems.org'
gem 'rails', '3.2.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'impressionist', :path => '../'
gem 'pg'
gem 'sqlite3'
gem 'json'