perete 0.0.4 → 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: e04f068920d9dc2f7db4fdeea2de506c7c8c55218efb7da400ded849f3aa2395
4
- data.tar.gz: b4dfec75474dac21067c95831c6e5c83d84bed0a6d7d6cae9feaf38ceb10f458
3
+ metadata.gz: bf9ea82372d6e44bd84884a80a00fe903405a128fc3372db4d8ebb51541c5400
4
+ data.tar.gz: e8ebedb30fe4bd7c5b8cc8abb4619001eef34255f5a5a41b445a3d29b0a9d960
5
5
  SHA512:
6
- metadata.gz: c286480675f0bbf0ad5fb701595263919afc1baefd113560d2d742781a1a11efd0451806fbb90d0a5e9c20bbdbc7435079f081b2aab5f819255caecef650f2fc
7
- data.tar.gz: 9205c41efd2d1bbb0bb26f7871ce6e53a59b6e397cbd57c2aae09ba8d235201a8668e8aba9999f2cf6cc5644812c13ea2c701e85bc3514b558cf5d72e8257899
6
+ metadata.gz: 361c53db49064265d274ab40b6a423c0e998bd96e4eb4b28024f5d26968786ef0506ac2115a6c290362a73e324769d605d641af0d3d3d4c6f4f75685f4ad6ff3
7
+ data.tar.gz: 888daa4f4e446a2f73cf0ede4244f9a69272be352b73f46401587c670954d752ba44ae4499c93dfd0e5566b422493ee65cd38488ff775f75170e07f51d717950
data/exe/perete CHANGED
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'perete'
4
- puts Perete.hi(ARGV[0])
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.4"
2
+ VERSION = "0.0.5"
3
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perete
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Durst
@@ -9,7 +9,21 @@ autorequire:
9
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