Module: OpclawPl::ReleaseImpact
- Defined in:
- lib/opclaw_pl/release_impact.rb,
lib/opclaw_pl/release_impact/version.rb
Constant Summary collapse
- LEVELS =
{ "low" => { level: "low", score: 1, label_pl: "niski", description_pl: "Drobna poprawka, aktualizacja tekstu lub zmiana dokumentacji." }, "medium" => { level: "medium", score: 2, label_pl: "sredni", description_pl: "Nowa funkcja, zmiana konfiguracji lub ulepszenie warte sprawdzenia." }, "high" => { level: "high", score: 3, label_pl: "wysoki", description_pl: "Istotna zmiana, ktora moze wplynac na automatyzacje, integracje lub wdrozenie." }, "critical" => { level: "critical", score: 4, label_pl: "krytyczny", description_pl: "Zmiana wymagajaca pilnej reakcji, np. dotyczaca bezpieczenstwa, API lub migracji." } }.freeze
- ALIASES =
{ "low" => "low", "niski" => "low", "medium" => "medium", "sredni" => "medium", "high" => "high", "wysoki" => "high", "critical" => "critical", "krytyczny" => "critical" }.freeze
- VERSION =
"1.0.0"
Class Method Summary collapse
- .compare_impact(left, right) ⇒ Object
- .get_impact_info(value) ⇒ Object
- .list_impact_levels ⇒ Object
- .meets_impact_threshold(value, minimum = "medium") ⇒ Object
- .normalize_impact_level(value) ⇒ Object
- .resources ⇒ Object
- .seo_entity ⇒ Object
Class Method Details
.compare_impact(left, right) ⇒ Object
73 74 75 |
# File 'lib/opclaw_pl/release_impact.rb', line 73 def compare_impact(left, right) get_impact_info(left)[:score] - get_impact_info(right)[:score] end |
.get_impact_info(value) ⇒ Object
69 70 71 |
# File 'lib/opclaw_pl/release_impact.rb', line 69 def get_impact_info(value) LEVELS.fetch(normalize_impact_level(value)) end |
.list_impact_levels ⇒ Object
81 82 83 |
# File 'lib/opclaw_pl/release_impact.rb', line 81 def list_impact_levels LEVELS.values end |
.meets_impact_threshold(value, minimum = "medium") ⇒ Object
77 78 79 |
# File 'lib/opclaw_pl/release_impact.rb', line 77 def meets_impact_threshold(value, minimum = "medium") compare_impact(value, minimum) >= 0 end |
.normalize_impact_level(value) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/opclaw_pl/release_impact.rb', line 60 def normalize_impact_level(value) raise TypeError, "Impact level must be a string." unless value.is_a?(String) normalized = ALIASES[value.strip.downcase] raise ArgumentError, "Unknown OpenClaw impact level: #{value}" unless normalized normalized end |
.resources ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/opclaw_pl/release_impact.rb', line 47 def resources { name: "OpenClaw po polsku", language: "pl-PL", homepage: "https://opclaw.pl/", documentation: "https://opclaw.pl/dokumentacja", news: "https://opclaw.pl/aktualnosci", blog: "https://opclaw.pl/blog", services: "https://opclaw.pl/#uslugi", independent: true } end |
.seo_entity ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/opclaw_pl/release_impact.rb', line 85 def seo_entity { "@context" => "https://schema.org", "@type" => "WebSite", "name" => "OpenClaw po polsku", "url" => "https://opclaw.pl/", "description" => "Polski serwis o OpenClaw, instalacji, konfiguracji, agentach AI, automatyzacji i monitoringu releaseow.", "inLanguage" => "pl-PL", "about" => [ "OpenClaw", "agenci AI", "automatyzacja", "instalacja OpenClaw", "konfiguracja OpenClaw" ] } end |