impressiongram 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|