Class: Debci::HTML::JSON
Instance Attribute Summary collapse
-
#arch ⇒ Object
Returns the value of attribute arch.
-
#suite ⇒ Object
Returns the value of attribute suite.
Attributes inherited from Rooted
Instance Method Summary collapse
- #datadir ⇒ Object
- #history ⇒ Object
-
#initialize(suite, arch) ⇒ JSON
constructor
A new instance of JSON.
- #packages ⇒ Object
- #status ⇒ Object
- #status_packages_data ⇒ Object
Constructor Details
#initialize(suite, arch) ⇒ JSON
Returns a new instance of JSON.
91 92 93 94 95 |
# File 'lib/debci/html.rb', line 91 def initialize(suite, arch) super() self.suite = suite self.arch = arch end |
Instance Attribute Details
#arch ⇒ Object
Returns the value of attribute arch.
85 86 87 |
# File 'lib/debci/html.rb', line 85 def arch @arch end |
#suite ⇒ Object
Returns the value of attribute suite.
85 86 87 |
# File 'lib/debci/html.rb', line 85 def suite @suite end |
Instance Method Details
#datadir ⇒ Object
87 88 89 |
# File 'lib/debci/html.rb', line 87 def datadir 'status' end |
#history ⇒ Object
127 128 129 130 131 132 133 |
# File 'lib/debci/html.rb', line 127 def history status_history = (root / suite / arch).glob('[0-9]*/[0-9]*/[0-9]*.json') status_history_data = status_history.sort.map { |f| ::JSON.parse(f.read) } h = root / suite / arch / 'history.json' h.write(::JSON.pretty_generate(status_history_data)) end |
#packages ⇒ Object
135 136 137 138 |
# File 'lib/debci/html.rb', line 135 def packages p = root / suite / arch / 'packages.json' p.write(::JSON.pretty_generate(status_packages_data.map(&:job).as_json)) end |
#status ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/debci/html.rb', line 102 def status data = { pass: 0, fail: 0, neutral: 0, tmpfail: 0, total: 0, } status_packages_data.each do |package_status| status = package_status.job.status data[status.to_sym] += 1 data[:total] += 1 end data[:date] = Time.now.strftime('%Y-%m-%dT%H:%M:%S') output = ::JSON.pretty_generate(data) today = root / suite / arch / Time.now.strftime('%Y/%m/%d.json') today.parent.mkpath today.write(output) current = root / suite / arch / 'status.json' current.write(output) end |
#status_packages_data ⇒ Object
97 98 99 100 |
# File 'lib/debci/html.rb', line 97 def status_packages_data @status_packages_data ||= Debci::PackageStatus.where(suite: suite, arch: arch).includes(:job) end |