class Thinreports::SectionReport::Build

Public Instance Methods

call(report_params) click to toggle source
# File lib/thinreports/section_report/build.rb, line 9
def call(report_params)
  schema = load_schema(report_params)
  params = report_params[:params] || {}

  Builder::ReportBuilder.new(schema).build(params)
end

Private Instance Methods

load_schema(report_params) click to toggle source
# File lib/thinreports/section_report/build.rb, line 18
def load_schema(report_params)
  loader = Schema::Loader.new

  case
  when report_params[:layout_file]
    loader.load_from_file(report_params[:layout_file])
  when report_params[:layout_data]
    loader.load_from_data(report_params[:layout_data])
  else
    raise Errors::LayoutFileNotFound
  end
end