Sha256: 55a3f57bf36966196b6e46f6b6cb54943c659a1e062b46e6ba765e2fdc9f861e
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module Leap class Report include XmlSerializer attr_reader :subject, :committee, :conclusion, :quorum def initialize(subject, committee, report) raise ArgumentError, 'Reports must identify themselves' unless committee.is_a?(::Leap::Committee) @subject = subject @committee = committee raise ArgumentError, 'Please report with quorum => conclusion' unless report.is_a?(Hash) and report.length == 1 @quorum, @conclusion = report.first end def formatted_conclusion return @formatted_conclusion unless @formatted_conclusion.nil? if characteristic = subject.class.characteristics[committee.name] @formatted_conclusion = characteristic.display committee.name => conclusion end @formatted_conclusion ||= conclusion end def as_json(*) { 'committee' => committee.as_json, 'conclusion' => formatted_conclusion, 'quorum' => quorum.as_json } end def to_xml(options = {}) super options do |xml| xml.report do |report_block| committee.to_xml(options.merge :skip_instruct => true, :builder => report_block) report_block.conclusion formatted_conclusion, :type => formatted_conclusion.class.to_s.downcase quorum.to_xml(options.merge :skip_instruct => true, :builder => report_block) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
leap-0.4.6 | lib/leap/report.rb |
leap-0.4.5 | lib/leap/report.rb |