penchmark 0.0.1 → 0.0.2

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
@@ -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