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

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_levelsObject



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

Raises:

  • (TypeError)


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

.resourcesObject



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_entityObject



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