philiprehberger-locale_kit 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c302d467b5ed11d3a39cc92d7a6ab9e7de7d12a024e5d5e621ee5205bf8291c
4
- data.tar.gz: 547ad8e17b6bf0efab6d2124e3003a71100a9b35d2f26c606aab267a37064f93
3
+ metadata.gz: '059b92458d9232190df3b248892166ef4bd09fa20e782f5e3c61ee9d10fcf36c'
4
+ data.tar.gz: 28a2405801d7c58b5ecdacc2e66276c8f5ffa6020248e192955cc9a072a81d8c
5
5
  SHA512:
6
- metadata.gz: 1ca0559427bdf9bb874fe52e98dde4f3c23e1cacfda4e7980c601180443b0a73660031df344059f024d58a4a2b64f3e06c7ef4c95beb3e951d71946d18a36baf
7
- data.tar.gz: c8b80a6ef41cb564169222e83694b6101a5ccd8b06afc8b13d85a8dd464e5b7350e8bc4b35c3b79e228f47aa7a2f0273882ffef888dd24b5fcb257c248719b34
6
+ metadata.gz: e6829ac9bd5c0917f4231e127a7b572a75c4d77d9a99ec4ba77c9896cc92f5be019e7ec025f3ec879e51b74422daa7b6397ebfebfa78dfbcbc70f661fa67e38e
7
+ data.tar.gz: ddb0fb2a802997a63b61288f7054307a86bc2bdeeaa791185b0f7c068ac267d5f0931c1e6592469dceac801ef2dd42baf906f4a0b9fa38b0dc5e0f62b7d250b6
data/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.0] - 2026-04-24
11
+
12
+ ### Added
13
+ - `LocaleKit.language_name(code)` — look up the English name for an ISO 639-1 language code (case-insensitive); returns `nil` for unknown codes or non-String input
14
+
10
15
  ## [0.3.0] - 2026-04-15
11
16
 
12
17
  ### Added
data/README.md CHANGED
@@ -91,6 +91,11 @@ Philiprehberger::LocaleKit.languages["ja"] #=> "Japanese"
91
91
 
92
92
  Philiprehberger::LocaleKit.regions["US"] #=> "United States"
93
93
  Philiprehberger::LocaleKit.regions["JP"] #=> "Japan"
94
+
95
+ # Single-lookup convenience (case-insensitive)
96
+ Philiprehberger::LocaleKit.language_name("en") #=> "English"
97
+ Philiprehberger::LocaleKit.language_name("FR") #=> "French"
98
+ Philiprehberger::LocaleKit.language_name("zz") #=> nil
94
99
  ```
95
100
 
96
101
  ### Language Compatibility
@@ -141,6 +146,7 @@ entries[0][:quality] #=> 1.0
141
146
  | `.negotiate(requested, available, default: nil)` | Find the best matching locale with fallback chains |
142
147
  | `.parse_accept_language(header)` | Parse an Accept-Language header into `[{locale:, quality:}]` |
143
148
  | `.languages` | Hash of ISO 639-1 language codes to English names |
149
+ | `.language_name(code)` | English name for an ISO 639-1 code (case-insensitive); `nil` if unknown |
144
150
  | `.regions` | Hash of ISO 3166-1 alpha-2 region codes to English names |
145
151
 
146
152
  ### `Philiprehberger::LocaleKit::Locale`
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Philiprehberger
4
4
  module LocaleKit
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
@@ -70,6 +70,18 @@ module Philiprehberger
70
70
  Data::LANGUAGES
71
71
  end
72
72
 
73
+ # Look up the English name for an ISO 639-1 language code.
74
+ #
75
+ # Case-insensitive. Returns `nil` for unknown codes or non-String input.
76
+ #
77
+ # @param code [String] a 2-letter ISO 639-1 code (e.g. "en", "EN")
78
+ # @return [String, nil] the English language name, or nil if unknown
79
+ def self.language_name(code)
80
+ return nil unless code.is_a?(String)
81
+
82
+ Data::LANGUAGES[code.downcase]
83
+ end
84
+
73
85
  # Returns a hash of common ISO 3166-1 alpha-2 region codes to English names.
74
86
  #
75
87
  # @return [Hash<String, String>] region code to name mapping
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philiprehberger-locale_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Rehberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-15 00:00:00.000000000 Z
11
+ date: 2026-04-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Parse BCP 47 language tags, negotiate content language from Accept-Language
14
14
  headers, and match locales with fallback chains. Zero dependencies.