Module: DevMetrics
- Defined in:
- lib/dev_metrics.rb,
lib/dev_metrics/csv.rb,
lib/dev_metrics/json.rb,
lib/dev_metrics/client.rb,
lib/dev_metrics/version.rb,
lib/dev_metrics/markdown.rb,
lib/dev_metrics/format_base.rb,
lib/dev_metrics/metrics_calc.rb,
lib/dev_metrics/query_builder.rb,
lib/dev_metrics/pull_request_wrapper.rb
Defined Under Namespace
Classes: Client, Config, Csv, FormatBase, Json, Markdown, MetricsCalc, PullRequestWrapper, QueryBuilder
Constant Summary
collapse
- VERSION =
"0.2.5"
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
43
44
45
|
# File 'lib/dev_metrics.rb', line 43
def self.configuration
@configuration
end
|
.option_parse(argv) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/dev_metrics.rb', line 47
def self.option_parse(argv)
options = {
period: (Date.today << 1).strftime("%Y-%m"),
format: "csv",
config: "dev_metrics_config.yml"
}
OptionParser.new do |opts|
opts.banner = "Usage: dev_metrics [options]"
opts.on("-c", "--config FILE", "Specify config YAML file (default: dev_metrics_config.yml)") do |file|
options[:config] = file
end
opts.on("-p", "--period PERIOD", "Specify the period for metrics (e.g., '2025-05' or '2025-05-01..2025-05-31')") do |period|
options[:period] = period
end
opts.on("-f", "--format FORMAT", "Specify the output format (e.g., 'csv', 'json', 'markdown')") do |format|
options[:format] = format
end
opts.on("-h", "--help", "Display this help message") do
puts opts
exit
end
end.parse!(argv)
options
end
|
.run(argv: nil) ⇒ Object
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/dev_metrics.rb', line 76
def self.run(argv: nil)
argv ||= ARGV
options = option_parse(argv)
config_file = options[:config] || "dev_metrics_config.yml"
@configuration.load_from_yaml(config_file)
period = options[:period]
format = options[:format]
client = DevMetrics::Client.new(@configuration)
prs = client.fetch(period: period)
case format
when "csv"
DevMetrics::Csv.new(prs).call
when "markdown"
DevMetrics::Markdown.new(prs).call
when "json"
DevMetrics::Json.new(prs).call
else
warn "Unknown format: #{format}"
warn "Available formats: csv, markdown, json"
exit 1
end
end
|