Class: RailsApiBenchmark::Views::View

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_api_benchmark/views/view.rb

Direct Known Subclasses

IndexMarkdown, ResultsMarkdown, SummaryMarkdown

Instance Method Summary collapse

Constructor Details

#initialize(*_args) ⇒ View

Returns a new instance of View.



6
7
8
9
# File 'lib/rails_api_benchmark/views/view.rb', line 6

def initialize(*_args)
  @config = RailsApiBenchmark.config
  @template_path = File.expand_path('../templates', __dir__)
end

Instance Method Details

#file_nameObject

Override this method in your view



12
13
14
# File 'lib/rails_api_benchmark/views/view.rb', line 12

def file_name
  "#{@file_name}.#{extension}"
end

#file_pathObject



21
22
23
# File 'lib/rails_api_benchmark/views/view.rb', line 21

def file_path
  [folder, file_name].compact.join('/')
end

#folderObject

Override this method in your view



17
18
19
# File 'lib/rails_api_benchmark/views/view.rb', line 17

def folder
  nil
end

#renderObject



31
32
33
34
# File 'lib/rails_api_benchmark/views/view.rb', line 31

def render
  template = File.read(File.join(@template_path, "#{template_name}.erb"))
  Erubis::Eruby.new(template).result(binding)
end

#writeObject



25
26
27
28
29
# File 'lib/rails_api_benchmark/views/view.rb', line 25

def write
  File.open(File.join(@config.results_folder, file_path), 'w') do |file|
    file << render
  end
end