Sha256: 5b54f5511a81fb0eb5eab8b31e4ad5320539b2c8ea03543c846fa2fcacd82e97
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module Jobshop class Inspection::Report < ApplicationRecord self.primary_keys = [ :organization_id, :report_id ] after_initialize do self.report_id ||= SecureRandom.uuid if new_record? end after_create do self.class.connection.clear_query_cache @attributes = self.class.unscoped { self.class.find_by!(organization: organization, report_id: report_id) }.instance_variable_get(:@attributes) @new_record = false self end belongs_to :organization has_many :criteria, -> { includes(:criterion).order(:position) }, foreign_key: [ :organization_id, :report_id ], inverse_of: :report has_many :tuples, -> { order(:position) }, inverse_of: :report, foreign_key: [ :organization_id, :report_id ] def ascii require "terminal-table" table = Terminal::Table.new do |t| t.title = "Inspection Report" t << [ "Feature" ].concat(criteria.map(&:criterion).map(&:name)) t << [ "Specification" ].concat(criteria.map(&:criterion).map(&:specification)) tuples.each do |tuple| results = criteria.map do |criterion| tuple.results.find_by(criterion: criterion) end t << [ tuple.position ].concat(results.map(&:value)) end end puts table end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jobshop-0.0.157 | app/models/jobshop/inspection/report.rb |