scripts/benchmarking/formatters.rb in object_identifier-0.5.0 vs scripts/benchmarking/formatters.rb in object_identifier-0.6.0
- old
+ new
@@ -18,20 +18,26 @@
MyObject.new(id: 1, name: "NAME1"),
MyObject.new(id: 2, name: "NAME2"),
MyObject.new(id: 3, name: "NAME3")
].freeze
+def parameterize(attributes = [], **formatter_options)
+ ObjectIdentifier.buid_parameters(
+ attributes: attributes,
+ formatter_options: formatter_options)
+end
+
puts "== Averaged ============================================================="
Benchmark.ips { |x|
formatter_klasses.each do |formatter_klass|
x.report(formatter_klass) {
formatter_klass.new(objects[0]).call
- formatter_klass.new(objects[0], %i[id name]).call
- formatter_klass.new(objects[0], klass: "CustomClass").call
- formatter_klass.new(objects[0], %i[id name], klass: "CustomClass").call
- formatter_klass.new(objects, limit: 2).call
- formatter_klass.new(objects, %i[id name], klass: "CustomClass", limit: 2).call
+ formatter_klass.new(objects[0], parameterize(%i[id name])).call
+ formatter_klass.new(objects[0], parameterize(klass: "CustomClass")).call
+ formatter_klass.new(objects[0], parameterize(%i[id name], klass: "CustomClass")).call
+ formatter_klass.new(objects, parameterize(limit: 2)).call
+ formatter_klass.new(objects, parameterize(%i[id name], klass: "CustomClass", limit: 2)).call
}
end
x.compare!
}
@@ -45,30 +51,30 @@
formatter_klass.new(objects[0]).call
}
end
formatter_klasses.each do |formatter_klass|
x.report("#{formatter_klass} - Custom Attributes") {
- formatter_klass.new(objects[0], %i[id name]).call
+ formatter_klass.new(objects[0], parameterize(%i[id name])).call
}
end
formatter_klasses.each do |formatter_klass|
x.report("#{formatter_klass} - Custom Class") {
- formatter_klass.new(objects[0], klass: "CustomClass").call
+ formatter_klass.new(objects[0], parameterize(klass: "CustomClass")).call
}
end
formatter_klasses.each do |formatter_klass|
x.report("#{formatter_klass} - Custom Attributes & Custom Class") {
- formatter_klass.new(objects[0], %i[id name], klass: "CustomClass").call
+ formatter_klass.new(objects[0], parameterize(%i[id name], klass: "CustomClass")).call
}
end
formatter_klasses.each do |formatter_klass|
x.report("#{formatter_klass} - Limit 2") {
- formatter_klass.new(objects, limit: 2).call
+ formatter_klass.new(objects, parameterize(limit: 2)).call
}
end
formatter_klasses.each do |formatter_klass|
x.report("#{formatter_klass} - Custom Attributes & Custom Class & Limit 2") {
- formatter_klass.new(objects, %i[id name], klass: "CustomClass", limit: 2).call
+ formatter_klass.new(objects, parameterize(%i[id name], klass: "CustomClass", limit: 2)).call
}
end
# rubocop:enable Style/CombinableLoops
x.compare!