simplificator-flogger 0.1.1 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README +35 -0
- data/lib/flogger/assertions.rb +11 -7
- metadata +2 -1
data/README
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
= flogger
|
2
|
+
== What is it
|
3
|
+
It's a test/unit extension so you can unit test your flog scores
|
4
|
+
|
5
|
+
|
6
|
+
== Installation
|
7
|
+
sudo gem install flog
|
8
|
+
sudo gem install simplificator-flogger
|
9
|
+
|
10
|
+
== usage
|
11
|
+
In your unit tests do
|
12
|
+
|
13
|
+
def test_something
|
14
|
+
assert_flog(a_file_or_a_dir)
|
15
|
+
end
|
16
|
+
|
17
|
+
= Samples:
|
18
|
+
== Flog a file or all ruby files in a directory
|
19
|
+
assert_flog(file_or_dir)
|
20
|
+
== Flog several files or directories
|
21
|
+
assert_flog(file_or_dir_1, file_or_dir_2, file_or_fir_n)
|
22
|
+
== set your own flog threshold
|
23
|
+
assert_flog(file_or_dir, :threshold => 20)
|
24
|
+
== set your own flog threshold for a specific method
|
25
|
+
assert_flog(file_or_dir, :thresholds => {'FooClass#bar_method'})
|
26
|
+
|
27
|
+
= Credits
|
28
|
+
Thanks to the ruby sadists at http://ruby.sadi.st/Ruby_Sadist.html
|
29
|
+
|
30
|
+
= More
|
31
|
+
See lib/flogger/assertions.rb for more
|
32
|
+
|
33
|
+
= About us
|
34
|
+
Simplificator writes Ruby and Ruby on Rails apps for a living.
|
35
|
+
http://simplificator.com
|
data/lib/flogger/assertions.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module Flogger
|
2
2
|
module InstanceMethods
|
3
|
+
ERROR_MESSAGE_PREFIX = 'Error when flogging your files:'
|
4
|
+
ERROR_MESSAGE = "%s has a flog score of %.2f (exceeding treshold of %.2f by %.2f)"
|
5
|
+
|
3
6
|
#
|
4
7
|
# assert the flog score of file(s) is below a treshold (default treshold is 20).
|
5
8
|
#
|
@@ -27,7 +30,7 @@ module Flogger
|
|
27
30
|
options = {:treshold => 20}.merge(options)
|
28
31
|
flogger = Flog.new()
|
29
32
|
flogger.flog_files(files)
|
30
|
-
failures =
|
33
|
+
failures = reject_success_and_sort(flogger.totals, options)
|
31
34
|
assert_block(build_flog_message(failures, options)) do
|
32
35
|
failures.size == 0
|
33
36
|
end
|
@@ -50,10 +53,11 @@ module Flogger
|
|
50
53
|
# Builds a 'nice' error message listing all failed methods
|
51
54
|
#
|
52
55
|
def build_flog_message(failures, options)
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
max = failures.inject(0) {|memo, item| memo = [memo, item.first.length].max}
|
57
|
+
message = [ERROR_MESSAGE_PREFIX]
|
58
|
+
failures.each do |item|
|
59
|
+
limit = treshold_for_key(item.first, options)
|
60
|
+
message << ERROR_MESSAGE % [item.first.ljust(max + 2, ' '), item.last, limit, (item.last - limit)]
|
57
61
|
end
|
58
62
|
message.join("\n")
|
59
63
|
end
|
@@ -61,10 +65,10 @@ module Flogger
|
|
61
65
|
#
|
62
66
|
# Remove all values which are not exceeding the threshold
|
63
67
|
#
|
64
|
-
def
|
68
|
+
def reject_success_and_sort(totals, options)
|
65
69
|
totals.reject do |key, value|
|
66
70
|
value < treshold_for_key(key, options)
|
67
|
-
end
|
71
|
+
end.to_a.sort() {|a, b| b.last <=> a.last}
|
68
72
|
end
|
69
73
|
|
70
74
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simplificator-flogger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simplificator GmbH
|
@@ -24,6 +24,7 @@ extra_rdoc_files: []
|
|
24
24
|
files:
|
25
25
|
- lib/flogger.rb
|
26
26
|
- lib/flogger/assertions.rb
|
27
|
+
- README
|
27
28
|
has_rdoc: false
|
28
29
|
homepage: http://simplificator.com/en/lab
|
29
30
|
post_install_message:
|