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

Version Path
techcor-0.0.10 lib/commands/view_history.rb
techcor-0.0.9 lib/commands/view_history.rb
techcor-0.0.8 lib/commands/view_history.rb
techcor-0.0.7 lib/commands/view_history.rb
techcor-0.0.6 lib/commands/view_history.rb
techcor-0.0.5 lib/commands/view_history.rb
techcor-0.0.4 lib/commands/view_history.rb
techcor-0.0.3 lib/commands/view_history.rb
techcor-0.0.2 lib/commands/view_history.rb
techcor-0.0.1 lib/commands/view_history.rb