Sha256: b3a68a84c6ae3887c2e91a5f94611971da6c6ce7a38ba9a70b53f95083f63a28
Contents?: true
Size: 961 Bytes
Versions: 10
Compression:
Stored size: 961 Bytes
Contents
class ViewHistory < Struct.new :project_name, :date_format, :properties def call formatter = formatter, records = records formatter.present records end def project project_name = project_name Project.find_by name: project_name end def records metrics = metrics metrics.collect(&:values).flatten end def formatter format = format ConsoleFormatter.new format end def properties project = project self[:properties].present? ? self[:properties] : project.metrics.collect(&:name) end def metrics project = project, properties = properties properties.map do |property| project.property property end.compact end def format date_format = date_format, metrics = metrics {'Date' => "created_at.strftime('#{date_format}')"}.merge list_metrics_format(metrics) end private def list_metrics_format metrics Hash[metrics.map { |m| [m.name, "metric.name == '#{m.name}' ? value : ''"] }] end end
Version data entries
10 entries across 10 versions & 1 rubygems