ahoy_events 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4aafe11f432c41f6ba5b0421cff4781e98930519
4
- data.tar.gz: af3c865cc2af3ed452c509bbd6d4c6151271f40c
3
+ metadata.gz: 624b3a10b7a0ec8f941e0218bf2ccf5c15b406fb
4
+ data.tar.gz: d95a3036411a9175742275ed066eac7026e936e9
5
5
  SHA512:
6
- metadata.gz: 086ea22e72dfc2f13979ae606402d711726f7228667a86b85328c8eed4bf170d693dd0e2c44ef3953e3c614c272558d88edfc406c025dfc0b741acc8a18d1f81
7
- data.tar.gz: 91238c667ebbeed5eeda837251027d82ab5d258d06f20500c6ad3a58f65689df787541b51cec7145eebb66ce8e1e5adab5a597a920f3b4509fc276a0dbe70e2c
6
+ metadata.gz: 10d94a157012825266783ba7a3e12da348dc0049edb6773014f2e1a6fdd8ca0b42e0185323e842bae78e7a7177530f07920af0ac952d9ac8083a41136b9b63c5
7
+ data.tar.gz: 50f2ebb1422c12902ea6d69b41d9068f483889771ae52a1a0fc3369b02dcb28e102953dbaf2b6e53f19905717c620e9b5e7788ec4901e28900b3bd0ba06ad06a
data/README.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  :seedling: Simple, powerful event tracking for Rails
4
4
 
5
+ Track events in:
6
+
7
+ - JavaScript
8
+ - Ruby
9
+ - Native apps
10
+
11
+ And store them wherever you’d like - your database, logs, external services, or all of them.
12
+
5
13
  ## Installation
6
14
 
7
15
  First, [add Ahoy](https://github.com/ankane/ahoy#installation).
@@ -58,6 +66,7 @@ Create an `Ahoy::Event` model to store events.
58
66
 
59
67
  ```sh
60
68
  rails generate ahoy_events:active_record
69
+ rake db:migrate
61
70
  ```
62
71
 
63
72
  ### Custom
@@ -87,10 +96,31 @@ Ahoy.subscribers << LogSubscriber.new
87
96
 
88
97
  Add as many subscribers as you’d like.
89
98
 
99
+ ## Reference
100
+
101
+ Track all Rails actions
102
+
103
+ ```ruby
104
+ class ApplicationController < ActionController::Base
105
+ after_filter :track_action
106
+
107
+ protected
108
+
109
+ def track_action
110
+ ahoy.track "Hit action", request.filtered_parameters
111
+ end
112
+ end
113
+ ```
114
+
115
+ Use a different model [master]
116
+
117
+ ```ruby
118
+ Ahoy.subscribers << Ahoy::Subscribers::ActiveRecord.new(model: Event)
119
+ ```
120
+
90
121
  ## TODO
91
122
 
92
123
  - Ability to track JavaScript events automatically (button clicks, etc)
93
- - Ability to track Rails events automatically (actions, etc)
94
124
 
95
125
  ## Contributing
96
126
 
data/ahoy_events.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "ahoy_matey", ">= 0.1.4"
21
+ spec.add_dependency "ahoy_matey", ">= 0.1.5"
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.6"
24
24
  spec.add_development_dependency "rake"
data/config/routes.rb CHANGED
@@ -1,4 +1,8 @@
1
- Ahoy::Engine.routes.draw do
1
+ Rails.application.routes.draw do
2
+ mount AhoyEvents::Engine => "/ahoy"
3
+ end
4
+
5
+ AhoyEvents::Engine.routes.draw do
2
6
  scope module: "ahoy" do
3
7
  resources :events, only: [:create]
4
8
  end
@@ -2,8 +2,12 @@ module Ahoy
2
2
  module Subscribers
3
3
  class ActiveRecord
4
4
 
5
+ def initialize(options = {})
6
+ @model = options[:model] || Ahoy::Event
7
+ end
8
+
5
9
  def track(name, properties, options = {})
6
- Ahoy::Event.create! do |e|
10
+ @model.create! do |e|
7
11
  e.visit = options[:visit]
8
12
  e.user = options[:user]
9
13
  e.name = name
data/lib/ahoy/tracker.rb CHANGED
@@ -9,12 +9,10 @@ module Ahoy
9
9
  # publish to each subscriber
10
10
  if @controller
11
11
  options[:controller] ||= @controller
12
- end
13
- if @controller.respond_to?(:current_user)
14
- options[:user] ||= @controller.current_user
15
- end
16
- if @controller.respond_to?(:current_visit)
17
- options[:visit] ||= @controller.current_visit
12
+ options[:user] ||= Ahoy.fetch_user(@controller)
13
+ if @controller.respond_to?(:current_visit)
14
+ options[:visit] ||= @controller.current_visit
15
+ end
18
16
  end
19
17
  options[:time] ||= Time.zone.now
20
18
 
data/lib/ahoy_events.rb CHANGED
@@ -1,13 +1,9 @@
1
1
  require "ahoy_events/version"
2
2
  require "ahoy_matey"
3
+ require "ahoy_events/engine"
3
4
  require "ahoy/tracker"
4
5
  require "ahoy/subscribers/active_record"
5
6
 
6
- module AhoyEvents
7
- class Engine < ::Rails::Engine
8
- end
9
- end
10
-
11
7
  module Ahoy
12
8
  mattr_accessor :subscribers
13
9
  self.subscribers = []
@@ -0,0 +1,4 @@
1
+ module AhoyEvents
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module AhoyEvents
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ahoy_events
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ahoy_matey
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.4
19
+ version: 0.1.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.4
26
+ version: 0.1.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -71,6 +71,7 @@ files:
71
71
  - lib/ahoy/subscribers/active_record.rb
72
72
  - lib/ahoy/tracker.rb
73
73
  - lib/ahoy_events.rb
74
+ - lib/ahoy_events/engine.rb
74
75
  - lib/ahoy_events/version.rb
75
76
  - lib/generators/ahoy_events/active_record_generator.rb
76
77
  - lib/generators/ahoy_events/templates/create_events.rb