perete 0.0.4 → 0.0.6

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: 0fd3bcaa98dc9f6ee4a23cc7636615c904d51fc89b37ef7848d50a1d5f826da1
4
+ data.tar.gz: a6555bca06653ff547cb5369ad1423e9e20aaf3de5f91a5cfc256feb7998634d
5
5
  SHA512:
6
- metadata.gz: c286480675f0bbf0ad5fb701595263919afc1baefd113560d2d742781a1a11efd0451806fbb90d0a5e9c20bbdbc7435079f081b2aab5f819255caecef650f2fc
7
- data.tar.gz: 9205c41efd2d1bbb0bb26f7871ce6e53a59b6e397cbd57c2aae09ba8d235201a8668e8aba9999f2cf6cc5644812c13ea2c701e85bc3514b558cf5d72e8257899
6
+ metadata.gz: 8847c2507e2182f2151ad074a0aca02b80eb8bd12ba12c8c9984351855909f4b29a0f7baac5709932e7681c4b0545286a75567584adf36a6df3e23da2401b757
7
+ data.tar.gz: f6a01629a81c1fa39b76f3e2698b3f0d2a490995a6528e01ec7f6fa5472a2a585af443f9fc154f516b3bbf22f24c860ecada4786612b61665adf650f6e489718
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.6"
3
3
  end
data/lib/perete.rb CHANGED
@@ -1,5 +1,55 @@
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 execute_and_compare
13
+ Dir["./benchmarks/*.rb"].each { |file| require file }
14
+ Benchmarks.constants
15
+ .each do |klass|
16
+ puts "Benchmarking #{klass}"
17
+
18
+ benchmark_object = eval("Benchmarks::#{klass}.new")
19
+
20
+ benchmark_object.setup
21
+
22
+ Benchmark.ips do |x|
23
+ x.config(time: 30, warmup: 3, iterations: 1)
24
+
25
+ x.report(klass) { benchmark_object.execute }
26
+ end
27
+
28
+ benchmark_object.teardown
29
+ end
30
+ end
31
+ end
32
+
33
+ module Benchmarks
34
+ class Benchmarker
35
+ def setup
36
+ # puts "setup"
37
+ end
38
+
39
+ def teardown
40
+ # puts "teardown"
41
+ end
42
+
43
+ def execute
44
+ setup
45
+
46
+ # puts "execute"
47
+ execute_internal
48
+
49
+ teardown
50
+ end
51
+
52
+ def execute_internal
53
+ end
54
+ end
5
55
  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.6
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