penchmark 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Penchmark
2
2
 
3
3
  Colorized output for Ruby's Benchmark.
4
- First version for safekeeping, refactoring to be done to reduce how much it is dependant on current version of benchmark
4
+
5
5
 
6
6
  ## Installation
7
7
 
@@ -15,7 +15,7 @@ And then execute:
15
15
 
16
16
  Or install it yourself as:
17
17
 
18
- $ gem install penchmark # SORRY! Not available yet.
18
+ $ gem install penchmark
19
19
 
20
20
  ## Usage
21
21
 
@@ -33,40 +33,51 @@ Example:
33
33
  ```ruby
34
34
  require 'penchmark'
35
35
 
36
- n = 10000
37
- output = Benchmark.pbm do |x|
38
- x.report("Test1", 0, 0.002) {
39
- for i in 1..n;
40
- a = "1";
41
- end }
42
-
43
- x.report("Test2", 0, 0.01) {
44
- for i in 1..n;
45
- a = "1";
46
- end }
47
-
48
- x.report("Test3", 0, 0.6) {
49
- for i in 1..n*400;
50
- a = "1";
51
- end }
52
-
53
- x.report("Test4", 0, 0.7) {
54
- for i in 1..n;
55
- a = "1";
56
- end }
57
-
58
- x.report("Test5", 0, 0.2) {
59
- for i in 1..n;
60
- a = "1";
61
- end }
62
-
63
- x.report("Test6", 0, 0.9 ) {
64
- for i in 1..n;
65
- a = "1";
66
- end }
36
+ n = 2000
37
+ output = Benchmark.penchmark(CAPTION, 7, FORMAT, '>total:', '>:avg') do |x|
38
+ tt = x.report('Test1', 0, 0.002) do
39
+ for i in 1..n
40
+ a = '1'
41
+ end
42
+ end
43
+
44
+ tb = x.report('Test2', 0, 0.01) do
45
+ for i in 1..n
46
+ a = '1'
47
+ end
48
+ end
49
+
50
+ tc = x.report('Test3', 0, 0.6) do
51
+ for i in 1..n*400
52
+ a = '1'
53
+ end
54
+ end
55
+
56
+ td = x.report('Test4', 0, 0.7) do
57
+ for i in 1..n*200
58
+ a = '1'
59
+ end
60
+ end
61
+
62
+ x.report('Test5', 0, 0.2) do
63
+ for i in 1..n
64
+ a = '1'
65
+ end
66
+ end
67
+
68
+ x.report('Test6', 0, 0.9) do
69
+ for i in 1..n
70
+ a = '1'
71
+ end
72
+ end
73
+
74
+ [tt+tb+tc+td, (tt+tb+tc+td)/3]
67
75
  end
68
76
  ```
69
77
 
78
+ ## TODO
79
+ Reduce dependency on Benchmark
80
+
70
81
  ## Contributing
71
82
 
72
83
  1. Fork it
data/Rakefile CHANGED
@@ -1 +1,4 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new('spec')
4
+
@@ -26,6 +26,7 @@ module Benchmark
26
26
  end
27
27
 
28
28
  def self.penchmark(caption = '', label_width = nil, format = nil, *labels)
29
+
29
30
  label_width ||= 0
30
31
  label_width += 1
31
32
  format ||= FORMAT
@@ -40,12 +41,7 @@ module Benchmark
40
41
  end
41
42
 
42
43
 
43
- def self.pbm(label_width = 0, &block)
44
- #puts 'test'
45
- label_width ||= 0
46
- label_width += 1
47
- print "#{' '*label_width + CAPTION}".pink unless CAPTION.empty?
48
- report = ColoredReport.new(3, nil)
49
- yield(report) if block_given?
44
+ def self.pbm(label_width = 0, *labels, &blk)
45
+ penchmark(CAPTION, label_width, FORMAT, *labels, &blk)
50
46
  end
51
47
  end
@@ -23,5 +23,6 @@ module Penchmark
23
23
  def blue
24
24
  colorize(34)
25
25
  end
26
+
26
27
  end
27
28
  end
@@ -1,3 +1,3 @@
1
1
  module Penchmark
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/penchmark.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'penchmark/version'
2
- require 'penchmark/test'
3
2
  require 'penchmark/string'
4
3
  require 'penchmark/benchmark'
5
4
 
data/penchmark.gemspec CHANGED
@@ -6,23 +6,28 @@ require 'penchmark/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'penchmark'
8
8
  spec.version = Penchmark::VERSION
9
- spec.authors = ["essjaybee"]
10
- spec.email = ["essjaybee@gmail.com"]
9
+ spec.authors = %w(essjaybee)
10
+ spec.email = %w(essjaybee@gmail.com)
11
11
  spec.description = %q{Colorized output of Benchmark}
12
12
  spec.summary = %q{Colorized output of Benchmark}
13
- spec.homepage = ""
14
- spec.license = "MIT"
13
+ spec.homepage = ''
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = %w(lib)
20
20
 
21
21
 
22
22
 
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.3"
25
- spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec", "~> 2.6"
24
+ spec.add_development_dependency 'bundler', '~> 1.3'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec'
27
+ spec.add_development_dependency 'guard'
28
+ spec.add_development_dependency 'guard-rspec'
29
+ #spec.add_development_dependency 'factory_girl_rails'
30
+
31
+
27
32
 
28
33
  end
@@ -0,0 +1,108 @@
1
+ require 'spec_helper'
2
+
3
+ describe Benchmark do
4
+
5
+ end
6
+
7
+ def verify_labels(output)
8
+ available_labels = %w(Test1, Test2, Test3, Test4, Test5, Test6)
9
+ valid_label = true
10
+ output.each do |out|
11
+ valid_label = available_labels.include? out.label
12
+ end
13
+ valid_label
14
+
15
+ end
16
+
17
+ describe '#penchmark' do
18
+ it 'penchmark should have labels in rows according to test block' do
19
+ n = 2000
20
+ output = Benchmark.penchmark(CAPTION, 7, FORMAT, '>total:', '>:avg') do |x|
21
+ tt = x.report('Test1', 0, 0.002) do
22
+ for i in 1..n
23
+ a = '1'
24
+ end
25
+ end
26
+
27
+ tb = x.report('Test2', 0, 0.01) do
28
+ for i in 1..n
29
+ a = '1'
30
+ end
31
+ end
32
+
33
+ tc = x.report('Test3', 0, 0.6) do
34
+ for i in 1..n*400
35
+ a = '1'
36
+ end
37
+ end
38
+
39
+ td = x.report('Test4', 0, 0.7) do
40
+ for i in 1..n*200
41
+ a = '1'
42
+ end
43
+ end
44
+
45
+ x.report('Test5', 0, 0.2) do
46
+ for i in 1..n
47
+ a = '1'
48
+ end
49
+ end
50
+
51
+ x.report('Test6', 0, 0.9) do
52
+ for i in 1..n
53
+ a = '1'
54
+ end
55
+ end
56
+
57
+ [tt+tb+tc+td, (tt+tb+tc+td)/3]
58
+ end
59
+
60
+ valid_label = verify_labels(output)
61
+ valid_label.should be_true
62
+
63
+ end
64
+
65
+ it "pbm should return a list of predefined labels" do
66
+ n = 10000
67
+ output = Benchmark.pbm do |x|
68
+ x.report("Test1") do
69
+ for i in 1..n
70
+ a = "1"
71
+ end
72
+ end
73
+
74
+ x.report("Test2") do
75
+ for i in 1..n
76
+ a = "1"
77
+ end
78
+ end
79
+
80
+ x.report("Test3") do
81
+ for i in 1..n*400
82
+ a = "1"
83
+ end
84
+ end
85
+
86
+ x.report("Test4") do
87
+ for i in 1..n
88
+ a = "1"
89
+ end
90
+ end
91
+
92
+ x.report("Test5") do
93
+ for i in 1..n
94
+ a = "1"
95
+ end
96
+ end
97
+
98
+ x.report("Test6") do
99
+ for i in 1..n
100
+ a = "1"
101
+ end
102
+ end
103
+ end
104
+
105
+ valid_label = verify_labels(output)
106
+ valid_label.should be_true
107
+ end
108
+ end
@@ -0,0 +1,10 @@
1
+ require 'rspec'
2
+ require 'penchmark'
3
+ include Benchmark
4
+
5
+ RSpec.configure do |config|
6
+ config.color_enabled = true
7
+ config.formatter = 'documentation'
8
+
9
+
10
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe String do
4
+
5
+
6
+ end
7
+
8
+ describe '#red' do
9
+ it 'should return red colored string' do
10
+ 'Test'.red.should == "\e[31mTest\e[0m"
11
+ end
12
+ end
13
+
14
+
15
+ describe '#green' do
16
+ it 'should return red colored string' do
17
+ 'Test'.green.should == "\e[32mTest\e[0m"
18
+ end
19
+ end
20
+
21
+
22
+ describe '#yellow' do
23
+ it 'should return red colored string' do
24
+ 'Test'.yellow.should == "\e[33mTest\e[0m"
25
+ end
26
+ end
27
+
28
+ describe '#pink' do
29
+ it 'should return red colored string' do
30
+ 'Test'.pink.should == "\e[35mTest\e[0m"
31
+ end
32
+ end
33
+
34
+
35
+ describe '#blue' do
36
+ it 'should return red colored string' do
37
+ 'Test'.blue.should == "\e[34mTest\e[0m"
38
+ end
39
+ end
40
+
41
+ describe '#colorize' do
42
+ 'Test'.colorize(35) == "\e[35mTest\e[0m"
43
+ end
44
+
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: penchmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - essjaybee
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-05-27 00:00:00.000000000 Z
12
+ date: 2013-05-29 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,31 +30,67 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - ~>
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
- version: '2.6'
53
+ version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - ~>
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard
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
+ - - ! '>='
53
76
  - !ruby/object:Gem::Version
54
- version: '2.6'
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-rspec
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'
55
94
  description: Colorized output of Benchmark
56
95
  email:
57
96
  - essjaybee@gmail.com
@@ -67,31 +106,37 @@ files:
67
106
  - lib/penchmark.rb
68
107
  - lib/penchmark/benchmark.rb
69
108
  - lib/penchmark/string.rb
70
- - lib/penchmark/test.rb
71
109
  - lib/penchmark/version.rb
72
110
  - penchmark.gemspec
111
+ - spec/benchmark_spec.rb
112
+ - spec/spec_helper.rb
113
+ - spec/string_spec.rb
73
114
  homepage: ''
74
115
  licenses:
75
116
  - MIT
76
- metadata: {}
77
117
  post_install_message:
78
118
  rdoc_options: []
79
119
  require_paths:
80
120
  - lib
81
121
  required_ruby_version: !ruby/object:Gem::Requirement
122
+ none: false
82
123
  requirements:
83
- - - '>='
124
+ - - ! '>='
84
125
  - !ruby/object:Gem::Version
85
126
  version: '0'
86
127
  required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
87
129
  requirements:
88
- - - '>='
130
+ - - ! '>='
89
131
  - !ruby/object:Gem::Version
90
132
  version: '0'
91
133
  requirements: []
92
134
  rubyforge_project:
93
- rubygems_version: 2.0.0.rc.2
135
+ rubygems_version: 1.8.25
94
136
  signing_key:
95
- specification_version: 4
137
+ specification_version: 3
96
138
  summary: Colorized output of Benchmark
97
- test_files: []
139
+ test_files:
140
+ - spec/benchmark_spec.rb
141
+ - spec/spec_helper.rb
142
+ - spec/string_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4ab9aa6003b5bcac9a7544ce719710a8bd1f82a6
4
- data.tar.gz: 17732d8e0a707193bf56e528e2277780dc149c48
5
- SHA512:
6
- metadata.gz: dda366e3811e079c701d8ff85c39741b876033e71b3dfd5e2a5a43ea8747de33e1881e9bfea00b1acb340b1fc8e01dbc3515f336fd956ac85371cf9be929089e
7
- data.tar.gz: 6dc8da3888dd67f567ddcb9f2bbcc723f2b40d3ba0cc92cc1a8c3edd5f4f45a52daad5ca371ffc2573b3132325e9932724306475825ff58d7af9f51c855f19fe
File without changes