action_tracker 0.1.0.3 → 0.1.0.4

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: bfb149079d10597d07994207f8a82c235004c638
4
- data.tar.gz: f3983a018a57ed372ba89f083d4b9c2b767155db
3
+ metadata.gz: ca216a7f089af0698cc33011d093feb69490860c
4
+ data.tar.gz: da50b64e31e0ebcfd3c8664070e09c161e7e4c78
5
5
  SHA512:
6
- metadata.gz: 56bf58bae35cad88d44b2908f5c35e80c59540d8c31ddee84c2956c3889f1acf4ea96c24e9fdce512bc1f0a233f3a5baac52e326c274e2a212d1c37a993a2ad5
7
- data.tar.gz: 3efbe77d676c092a0393aa11daae5f20b3efa5b3a125d859b5e786cdee212ae4f2ecd67f28f3995124ccd570cb2d0b2e3d3eaea0f89a84f60b9c803891c2f0dc
6
+ metadata.gz: 3bf5d2242306b8f9c89e6738fa2aec7ed4c935ff5243b03acae68a6cbe2712f558505e222398f1e12e3fd1e7d9d752ea7fc61161baa8a0bf65b0249ee83783b7
7
+ data.tar.gz: af2c98a243dfaaa4b15dfc01eedd6f506671c335bc5184a6101d097f648b08bb640f5bc7efb7c089d402c6789794011943c74226ff021da80f10012ac962476e
@@ -4,25 +4,27 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'action_tracker/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "action_tracker"
7
+ spec.name = 'action_tracker'
8
8
  spec.version = ActionTracker::VERSION
9
- spec.authors = ["André Taiar", "João Fraga"]
10
- spec.email = ["andre.taiar@appprova.com.br", "joaogabriel@appprova.com.br"]
9
+ spec.authors = ['André Taiar', 'João Fraga']
10
+ spec.email = ['andre.taiar@appprova.com.br', 'joaogabriel@appprova.com.br']
11
11
 
12
12
  spec.summary = %q{Easy way to track actions in your application.}
13
13
  spec.description = %q{Easy way to track actions in your application without adding unnecessary code to your controllers.}
14
- spec.homepage = "http://coders.appprova.com.br/"
15
- spec.license = "MIT"
14
+ spec.homepage = 'http://coders.appprova.com.br/'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
22
  spec.add_dependency 'rails3_before_render', '0.2.0'
23
23
  spec.add_dependency 'activesupport', '~> 3.2'
24
+ spec.add_dependency 'devise', '~> 3.4'
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.11"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "rspec-rails", "~> 3.0"
29
+ spec.add_development_dependency 'rails', '~> 3.2'
28
30
  end
@@ -1,6 +1,15 @@
1
1
  module ActionTracker
2
2
  # nodoc
3
3
  class Base
4
- attr_accessor :params, :user
4
+ attr_reader :params, :resource
5
+
6
+ def initialize(resource, params)
7
+ @resource = resource
8
+ @params = params
9
+ end
10
+
11
+ def user
12
+ @resource
13
+ end
5
14
  end
6
15
  end
@@ -1,3 +1,4 @@
1
+ require 'active_support'
1
2
  require 'rails3_before_render'
2
3
 
3
4
  module ActionTracker
@@ -12,23 +13,42 @@ module ActionTracker
12
13
  end
13
14
 
14
15
  def track_event
15
- tracker_user = current_user || current_teacher
16
- tracker_class = "#{namespace}#{controller_name.camelize}Tracker"
17
- @tracker_params = tracker_params(tracker_class, tracker_user)
16
+ session[:action_tracker] ||= []
17
+ output = tracker_params
18
+ session[:action_tracker] << output unless output.blank?
18
19
  end
19
20
 
20
21
  private
21
22
 
22
- def tracker_params(tracker_class, tracker_user)
23
- begin
24
- tracker = Object.const_get(tracker_class, false).new
25
- tracker.user = tracker_user
26
- tracker.params = params
27
- output = tracker.method(action_name).call if tracker.respond_to? action_name
28
- rescue NameError
29
- output = ''
30
- end
31
- output
23
+ def tracker_klass
24
+ @tracker_klass ||= "#{namespace}#{controller_name.camelize}Tracker"
25
+ end
26
+
27
+ def resource
28
+ @resource ||= method(find_resource).call if find_resource
29
+ end
30
+
31
+ def find_resource
32
+ @resource_method ||= Devise.mappings.keys.map { |resource| "current_#{resource}" }
33
+ .select { |method_name| !method(method_name).call.nil? }
34
+ .first
35
+ rescue NameError
36
+ nil
37
+ end
38
+
39
+ def tracker_instance
40
+ @tracker_instance ||= Object.const_get(tracker_klass, false).new(resource, params)
41
+ rescue NameError
42
+ nil
43
+ end
44
+
45
+ def tracker_params
46
+ return nil unless tracker_exists?
47
+ tracker_instance.method(action_name).call
48
+ end
49
+
50
+ def tracker_exists?
51
+ tracker_instance && tracker_instance.respond_to?(action_name)
32
52
  end
33
53
 
34
54
  def namespace
@@ -3,7 +3,9 @@ module ActionTracker
3
3
  # nodoc
4
4
  module Render
5
5
  def track_event
6
- @tracker_params unless @tracker_params.nil?
6
+ output = session[:action_tracker].to_s
7
+ session[:action_tracker] = nil
8
+ output
7
9
  end
8
10
  end
9
11
  end
@@ -1,3 +1,3 @@
1
1
  module ActionTracker
2
- VERSION = "0.1.0.3"
2
+ VERSION = "0.1.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_tracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.3
4
+ version: 0.1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Taiar
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-04-18 00:00:00.000000000 Z
12
+ date: 2016-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails3_before_render
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.2'
42
+ - !ruby/object:Gem::Dependency
43
+ name: devise
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.4'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.4'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: bundler
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +82,7 @@ dependencies:
68
82
  - !ruby/object:Gem::Version
69
83
  version: '10.0'
70
84
  - !ruby/object:Gem::Dependency
71
- name: rspec
85
+ name: rspec-rails
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
88
  - - "~>"
@@ -81,6 +95,20 @@ dependencies:
81
95
  - - "~>"
82
96
  - !ruby/object:Gem::Version
83
97
  version: '3.0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rails
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.2'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '3.2'
84
112
  description: Easy way to track actions in your application without adding unnecessary
85
113
  code to your controllers.
86
114
  email: