perete 0.0.3 → 0.0.5

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
  SHA256:
3
- metadata.gz: 96be8fadb4063dc2e77be1b2613f4d9d7713ee3d5d213ad36df10734c1ef2ada
4
- data.tar.gz: ad20b38d707e0c353e37cd6383bfa605a45c44c93758f6b62cb1b4636477a8cc
3
+ metadata.gz: bf9ea82372d6e44bd84884a80a00fe903405a128fc3372db4d8ebb51541c5400
4
+ data.tar.gz: e8ebedb30fe4bd7c5b8cc8abb4619001eef34255f5a5a41b445a3d29b0a9d960
5
5
  SHA512:
6
- metadata.gz: 98de215dc845ee6d5f2a48614b1df8e17ff4963e1713204a5ebd51c18dbd0bb66f335984bd3cb26d98a6dbc61d5e755d4a353198793aaac45747679cca4e8990
7
- data.tar.gz: f48d5a149f3e573fa4ad02c7cda4c3ee745429e9b2ca22fde458d93aaba55a2a49ebf46c054f59b356a48daa639fe535772a9791209c9c29558cbf00a9fdb03e
6
+ metadata.gz: 361c53db49064265d274ab40b6a423c0e998bd96e4eb4b28024f5d26968786ef0506ac2115a6c290362a73e324769d605d641af0d3d3d4c6f4f75685f4ad6ff3
7
+ data.tar.gz: 888daa4f4e446a2f73cf0ede4244f9a69272be352b73f46401587c670954d752ba44ae4499c93dfd0e5566b422493ee65cd38488ff775f75170e07f51d717950
data/exe/perete ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'perete'
4
+ require "json"
5
+ require "benchmark/ips"
6
+
7
+ BenchmarkerTestRunner.new(previous_file_path: "filename.json").execute_and_compare
@@ -1,3 +1,3 @@
1
1
  module Perete
2
- VERSION = "0.0.3"
3
- end
2
+ VERSION = "0.0.5"
3
+ end
data/lib/perete.rb CHANGED
@@ -1,5 +1,61 @@
1
+ require "benchmark/ips"
2
+
1
3
  class Perete
2
4
  def self.hi(message = "Hello World!")
3
5
  puts "#{message}"
4
6
  end
7
+ end
8
+
9
+ class BenchmarkerTestRunner
10
+ DIRECTORY = "benchmarks/previous_runs/"
11
+
12
+ def initialize(previous_file_path:)
13
+ @previous_file_path = previous_file_path
14
+ end
15
+
16
+ def execute_and_compare
17
+ Dir["./benchmarks/*.rb"].each { |file| require file }
18
+ Benchmarks.constants
19
+ .each do |klass|
20
+ puts "Benchmarking #{klass}"
21
+
22
+ benchmark_object = eval("Benchmarks::#{klass}.new")
23
+
24
+ benchmark_object.setup
25
+
26
+ Benchmark.ips do |x|
27
+ x.config(time: 30, warmup: 3, iterations: 1)
28
+
29
+ x.report(klass) { benchmark_object.execute }
30
+
31
+ x.json! file_path
32
+ end
33
+
34
+ benchmark_object.teardown
35
+ end
36
+ end
37
+ end
38
+
39
+ module Benchmarks
40
+ class Benchmarker
41
+ def setup
42
+ # puts "setup"
43
+ end
44
+
45
+ def teardown
46
+ # puts "teardown"
47
+ end
48
+
49
+ def execute
50
+ setup
51
+
52
+ # puts "execute"
53
+ execute_internal
54
+
55
+ teardown
56
+ end
57
+
58
+ def execute_internal
59
+ end
60
+ end
5
61
  end
metadata CHANGED
@@ -1,29 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perete
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Durst
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2023-08-16 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: benchmark-ips
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.12'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.12'
13
27
  description: Performance regression framework and executor.
14
28
  email:
15
29
  - me@robdurst.com
16
- executables: []
30
+ executables:
31
+ - perete
17
32
  extensions: []
18
33
  extra_rdoc_files: []
19
34
  files:
20
35
  - LICENSE
21
36
  - README.md
22
- - bin/perete
37
+ - exe/perete
23
38
  - lib/perete.rb
24
39
  - lib/perete/version.rb
25
40
  homepage: http://github.com/robertdurst/perete
26
- licenses: []
41
+ licenses:
42
+ - MIT
27
43
  metadata: {}
28
44
  post_install_message:
29
45
  rdoc_options: []
data/bin/perete DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'perete'
4
- puts Perete.hi(ARGV[0])