aackerman/lebowski-api

View on GitHub
app/models/script.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Script
  def as_json
    { script: lines }
  end

  def as_text
    lines.map {|l| "#{l[:character][:name]}\n#{l[:text]}" }.join "\n\n"
  end

  private

  def lines
    Rails.cache.fetch(['script', 'to-json']) do
      Line.includes(:character, :quotes).order(Arel.sql('id ASC')).map { |l|
        LineSerializer.new(l, root: false)
      }.as_json
    end
  end
end