impressiongram 0.0.0 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/impressionist/engine.rb +2 -2
- data/lib/impressionist.rb +2 -2
- metadata +1 -4
- data/app/controllers/impressionist_controller.rb +0 -68
- data/app/models/impressionist/bots.rb +0 -1462
- data/app/models/impressionist/impressionable.rb +0 -68
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/impressionist/engine.rb
CHANGED
data/lib/impressionist.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: impressiongram
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- paulkaplan
|
@@ -94,10 +94,7 @@ files:
|
|
94
94
|
- README.md
|
95
95
|
- Rakefile
|
96
96
|
- VERSION
|
97
|
-
- app/controllers/impressionist_controller.rb
|
98
97
|
- app/models/impression.rb
|
99
|
-
- app/models/impressionist/bots.rb
|
100
|
-
- app/models/impressionist/impressionable.rb
|
101
98
|
- config/routes.rb
|
102
99
|
- lib/generators/impressionist/impressionist_generator.rb
|
103
100
|
- lib/generators/impressionist/templates/create_impressions_table.rb
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'digest/sha2'
|
2
|
-
|
3
|
-
module ImpressionistController
|
4
|
-
module ClassMethods
|
5
|
-
def impressionist(opts={})
|
6
|
-
before_filter { |c| c.impressionist_subapp_filter opts[:actions] }
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
module InstanceMethods
|
11
|
-
def self.included(base)
|
12
|
-
base.before_filter :impressionist_app_filter
|
13
|
-
end
|
14
|
-
|
15
|
-
def impressionist(obj,message=nil)
|
16
|
-
unless bypass
|
17
|
-
if obj.respond_to?("impressionable?")
|
18
|
-
obj.impressions.create(:message=> message,
|
19
|
-
:request_hash=> @impressionist_hash,
|
20
|
-
:session_hash=> request.session_options[:id],
|
21
|
-
:ip_address=> request.remote_ip,
|
22
|
-
:user_id=> user_id,
|
23
|
-
:controller_name=>controller_name,
|
24
|
-
:action_name=> action_name,
|
25
|
-
:referrer=>request.referer)
|
26
|
-
else
|
27
|
-
raise "#{obj.class.to_s} is not impressionable!"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def impressionist_app_filter
|
33
|
-
@impressionist_hash = Digest::SHA2.hexdigest(Time.now.to_f.to_s+rand(10000).to_s)
|
34
|
-
end
|
35
|
-
|
36
|
-
def impressionist_subapp_filter(actions=nil)
|
37
|
-
unless bypass
|
38
|
-
actions.collect!{|a|a.to_s} unless actions.blank?
|
39
|
-
if actions.blank? or actions.include?(action_name)
|
40
|
-
Impression.create(:controller_name=> controller_name,
|
41
|
-
:action_name=> action_name,
|
42
|
-
:user_id=> user_id,
|
43
|
-
:request_hash=> @impressionist_hash,
|
44
|
-
:session_hash=> request.session_options[:id],
|
45
|
-
:ip_address=> request.remote_ip,
|
46
|
-
:impressionable_type=> controller_name.singularize.camelize,
|
47
|
-
:impressionable_id=> params[:id],
|
48
|
-
:referrer=>request.referer)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
def bypass
|
55
|
-
Impressionist::Bots::WILD_CARDS.each do |wild_card|
|
56
|
-
return true if request.user_agent and request.user_agent.downcase.include? wild_card
|
57
|
-
end
|
58
|
-
Impressionist::Bots::LIST.include? request.user_agent
|
59
|
-
end
|
60
|
-
|
61
|
-
#use both @current_user and current_user helper
|
62
|
-
def user_id
|
63
|
-
user_id = @current_user ? @current_user.id : nil rescue nil
|
64
|
-
user_id = current_user ? current_user.id : nil rescue nil if user_id.blank?
|
65
|
-
user_id
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|