flatfoot 0.0.3 → 0.0.4

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/README.md CHANGED
@@ -42,9 +42,15 @@ After making changes deploying or just to clear out the Redis size you can clear
42
42
 
43
43
  FLATFOOT.reset_recordings
44
44
 
45
- If you set the `FLATFOOT` constant in a initializer you can also use the included rake tasks.
45
+ If you set the `FLATFOOT` constant in a initializer you can also use the included rake tasks. Edit your `Rakefile` and add
46
46
 
47
+ require 'flatfoot/tasks'
47
48
 
49
+ Then you should have tasks to help view the flatfoot data
50
+
51
+ rake flatfoot:reset # reset tracked views
52
+ rake flatfoot:unused # report unused views
53
+ rake flatfoot:used # report used views
48
54
 
49
55
  ## Contributing
50
56
 
@@ -53,3 +59,7 @@ If you set the `FLATFOOT` constant in a initializer you can also use the include
53
59
  3. Commit your changes (`git commit -am 'Add some feature'`)
54
60
  4. Push to the branch (`git push origin my-new-feature`)
55
61
  5. Create new Pull Request
62
+
63
+ ## MIT LICENSE
64
+
65
+ view the LICENSE.txt for details
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ task :default => :test
4
+ require 'rake/testtask'
5
+ Rake::TestTask.new(:test) do |test|
6
+ test.libs << 'lib' << 'test'
7
+ test.pattern = 'test/**/*_test.rb'
8
+ test.verbose = true
9
+ end
data/flatfoot.gemspec CHANGED
@@ -20,4 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "mocha", "~> 0.14.0"
24
+ spec.add_development_dependency "shoulda"
25
+ spec.add_development_dependency "rack"
26
+ spec.add_development_dependency "simplecov"
23
27
  end
@@ -1,3 +1,3 @@
1
1
  module Flatfoot
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/flatfoot.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "flatfoot/version"
2
+ require 'timeout'
2
3
 
3
4
  module Flatfoot
4
5
 
@@ -13,23 +14,27 @@ module Flatfoot
13
14
  end
14
15
 
15
16
  def track_views(name, start, finish, id, payload)
16
- if file = payload[:identifier]
17
- unless logged_views.include?(file)
18
- logged_views << file
19
- store.sadd(tracker_key, file)
17
+ begin
18
+ if file = payload[:identifier]
19
+ unless logged_views.include?(file)
20
+ logged_views << file
21
+ store.sadd(tracker_key, file)
22
+ end
20
23
  end
21
- end
22
- ###
23
- # Annoyingly while you get full path for templates
24
- # notifications only pass part of the path for layouts dropping any format info
25
- # such as .html.erb or .js.erb
26
- # http://edgeguides.rubyonrails.org/active_support_instrumentation.html#render_partial-action_view
27
- ###
28
- if layout_file = payload[:layout]
29
- unless logged_views.include?(layout_file)
30
- logged_views << layout_file
31
- store.sadd(tracker_key, layout_file)
24
+ ###
25
+ # Annoyingly while you get full path for templates
26
+ # notifications only pass part of the path for layouts dropping any format info
27
+ # such as .html.erb or .js.erb
28
+ # http://edgeguides.rubyonrails.org/active_support_instrumentation.html#render_partial-action_view
29
+ ###
30
+ if layout_file = payload[:layout]
31
+ unless logged_views.include?(layout_file)
32
+ logged_views << layout_file
33
+ store.sadd(tracker_key, layout_file)
34
+ end
32
35
  end
36
+ rescue Errno::EAGAIN, Timeout::Error
37
+ #we don't want to raise errors if flatfoot can't reach redis. This is a nice to have not a bring the system down
33
38
  end
34
39
  end
35
40
 
@@ -0,0 +1,17 @@
1
+ require 'simplecov'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+ require 'mocha/setup'
5
+ require 'ostruct'
6
+
7
+ SimpleCov.start do
8
+ add_filter 'specs/ruby/1.9.1/gems/'
9
+ add_filter '/test/'
10
+ add_filter '/config/'
11
+ end
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ Mocha::Configuration.prevent(:stubbing_non_existent_method)
16
+
17
+ require 'flatfoot'
@@ -0,0 +1,65 @@
1
+ require File.expand_path('../test_helper', File.dirname(__FILE__))
2
+
3
+ class ReporterTest < Test::Unit::TestCase
4
+
5
+ should "init correctly" do
6
+ tracker = Flatfoot::Tracker.new("store", {:roots => 'dir'})
7
+ assert_equal 'dir', tracker.roots.first
8
+ assert_equal 'store', tracker.store
9
+ assert_equal [], tracker.logged_views
10
+ end
11
+
12
+ should "track partials" do
13
+ store = fake_store
14
+ store.expects(:sadd).with('render_tracker', 'file')
15
+ tracker = Flatfoot::Tracker.new(store, {:roots => 'dir'})
16
+ tracker.track_views('name', 'start', 'finish', 'id', {:identifier => 'file'})
17
+ assert_equal ['file'], tracker.logged_views
18
+ end
19
+
20
+ should "track layouts" do
21
+ store = fake_store
22
+ store.expects(:sadd).with('render_tracker', 'layout')
23
+ tracker = Flatfoot::Tracker.new(store, {:roots => 'dir'})
24
+ tracker.track_views('name', 'start', 'finish', 'id', {:layout => 'layout'})
25
+ assert_equal ['layout'], tracker.logged_views
26
+ end
27
+
28
+ should "report used partials" do
29
+ store = fake_store
30
+ tracker = Flatfoot::Tracker.new(store, {:roots => 'dir'})
31
+ tracker.track_views('name', 'start', 'finish', 'id', {:identifier => 'file'})
32
+ assert_equal ['file'], tracker.used_views
33
+ end
34
+
35
+ should "report unused partials" do
36
+ store = fake_store
37
+ Dir.expects(:glob).returns(['file', 'not_used'])
38
+ tracker = Flatfoot::Tracker.new(store, {:roots => 'dir'})
39
+ tracker.track_views('name', 'start', 'finish', 'id', {:identifier => 'file'})
40
+ assert_equal ['not_used'], tracker.unused_views
41
+ end
42
+
43
+ should "reset store" do
44
+ store = fake_store
45
+ store.expects(:del).with('render_tracker')
46
+ tracker = Flatfoot::Tracker.new(store, {:roots => 'dir'})
47
+ tracker.track_views('name', 'start', 'finish', 'id', {:identifier => 'file'})
48
+ tracker.reset_recordings
49
+ end
50
+
51
+ protected
52
+
53
+ def fake_store
54
+ store = OpenStruct.new(:del => true)
55
+ store.data = []
56
+ def store.sadd(key, val)
57
+ data << val
58
+ end
59
+ def store.smembers(key)
60
+ data
61
+ end
62
+ store
63
+ end
64
+
65
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flatfoot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-11 00:00:00.000000000 Z
12
+ date: 2014-05-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -43,6 +43,70 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.14.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.14.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: shoulda
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rack
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: simplecov
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
46
110
  description: Discover dead view files in your app. Track view layer render usage
47
111
  email:
48
112
  - dan.mayer@livingsocial.com
@@ -59,6 +123,8 @@ files:
59
123
  - lib/flatfoot.rb
60
124
  - lib/flatfoot/tasks.rb
61
125
  - lib/flatfoot/version.rb
126
+ - test/test_helper.rb
127
+ - test/unit/flatfoot_test.rb
62
128
  homepage: ''
63
129
  licenses:
64
130
  - MIT
@@ -74,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
140
  version: '0'
75
141
  segments:
76
142
  - 0
77
- hash: 3379319623788336714
143
+ hash: -445969606613763391
78
144
  required_rubygems_version: !ruby/object:Gem::Requirement
79
145
  none: false
80
146
  requirements:
@@ -83,11 +149,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
149
  version: '0'
84
150
  segments:
85
151
  - 0
86
- hash: 3379319623788336714
152
+ hash: -445969606613763391
87
153
  requirements: []
88
154
  rubyforge_project:
89
155
  rubygems_version: 1.8.23
90
156
  signing_key:
91
157
  specification_version: 3
92
158
  summary: Discover dead view files in your app. Track view layer render usage
93
- test_files: []
159
+ test_files:
160
+ - test/test_helper.rb
161
+ - test/unit/flatfoot_test.rb