Class: Benchmark::Driver::RubyDslParser
- Inherits:
-
Object
- Object
- Benchmark::Driver::RubyDslParser
- Defined in:
- lib/benchmark/driver/ruby_dsl_parser.rb
Instance Method Summary collapse
- #bundler ⇒ Object
- #compare! ⇒ Object
-
#configuration ⇒ Benchmark::Driver::Configuration
API to fetch configuration parsed from DSL.
-
#initialize(runner: nil, output: :ips) ⇒ RubyDslParser
constructor
A new instance of RubyDslParser.
- #prelude(prelude_script) ⇒ Object
- #rbenv(*specs) ⇒ Object
- #report(name = nil, script = nil, &block) ⇒ Object
Constructor Details
#initialize(runner: nil, output: :ips) ⇒ RubyDslParser
Returns a new instance of RubyDslParser.
6 7 8 9 10 11 12 13 14 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 6 def initialize(runner: nil, output: :ips) @prelude = nil @jobs = [] @runner = runner @execs = nil @bundler = false @output = output @compare = false end |
Instance Method Details
#bundler ⇒ Object
48 49 50 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 48 def bundler @bundler = true end |
#compare! ⇒ Object
69 70 71 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 69 def compare! @compare = true end |
#configuration ⇒ Benchmark::Driver::Configuration
API to fetch configuration parsed from DSL
18 19 20 21 22 23 24 25 26 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 18 def configuration @jobs.each do |job| job.prelude = @prelude end Benchmark::Driver::Configuration.new(@jobs).tap do |c| c. = Benchmark::Driver::Configuration::RunnerOptions.new(@runner, @execs, nil, @bundler) c. = Benchmark::Driver::Configuration::OutputOptions.new(@output, @compare) end end |
#prelude(prelude_script) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 29 def prelude(prelude_script) unless prelude_script.is_a?(String) raise ArgumentError.new("prelude must be String but got #{prelude_script.inspect}") end unless @prelude.nil? raise ArgumentError.new("prelude is already set:\n#{@prelude}") end @prelude = prelude_script end |
#rbenv(*specs) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 41 def rbenv(*specs) @execs ||= [] specs.each do |spec| @execs << Benchmark::Driver::Configuration::Executable.parse_rbenv(spec) end end |
#report(name = nil, script = nil, &block) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/benchmark/driver/ruby_dsl_parser.rb', line 55 def report(name = nil, script = nil, &block) if !script.nil? && block_given? raise ArgumentError.new('script and block cannot be specified at the same time') elsif name.nil? && block_given? raise ArgumentError.new('name must be specified if block is given') elsif !name.nil? && !name.is_a?(String) raise ArgumentError.new("name must be String but got #{name.inspect}") elsif !script.nil? && !script.is_a?(String) raise ArgumentError.new("script must be String but got #{script.inspect}") end @jobs << Benchmark::Driver::Configuration::Job.new(name, script || block || name) end |