lib/journal-cli/checkin.rb in journal-cli-1.0.13 vs lib/journal-cli/checkin.rb in journal-cli-1.0.14

- old
+ new

@@ -213,23 +213,42 @@ @data.each do |jk, journal| output[jk] = {} journal.answers.each do |k, v| if v.is_a? Hash output[jk][k] = {} + v.each do |key, value| - output[jk][k][key] = case value.class.to_s - when /Weather/ - { 'high' => value.data[:high], 'low' => value.data[:low], 'condition' => value.data[:condition] } - else - value - end + result = case value.class.to_s + when /Weather/ + { 'high' => value.data[:high], 'low' => value.data[:low], 'condition' => value.data[:condition] } + else + value + end + if jk == k + output[jk] = result + else + output[jk][k] = result + end end else - output[jk][k] = v + if jk == k + output[jk] = v + else + output[jk][k] = v + end end end end data << { 'date' => date, 'data' => output } + data.map! do |d| + { + 'date' => d['date'].is_a?(String) ? Time.parse(d['date']) : d['date'], + 'data' => d['data'] + } + end + + data.sort_by! { |e| e['date'] } + File.open(db, 'w') { |f| f.puts JSON.pretty_generate(data) } end end end