Class: CleoDesignTokens::SemanticBucket
- Inherits:
-
Object
- Object
- CleoDesignTokens::SemanticBucket
- Defined in:
- lib/cleo_design_tokens/semantic_bucket.rb
Overview
theme: defaults to "base" — $themes never carries a "base" key
(Base isn't an override of itself), so the default and an explicit
theme: :base resolve identically with no special-casing.
Instance Method Summary collapse
- #fetch(key, theme: "base") ⇒ Object
-
#initialize(lookup) ⇒ SemanticBucket
constructor
A new instance of SemanticBucket.
Constructor Details
#initialize(lookup) ⇒ SemanticBucket
Returns a new instance of SemanticBucket.
11 12 13 |
# File 'lib/cleo_design_tokens/semantic_bucket.rb', line 11 def initialize(lookup) @lookup = lookup end |
Instance Method Details
#fetch(key, theme: "base") ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/cleo_design_tokens/semantic_bucket.rb', line 15 def fetch(key, theme: "base") theme = theme.to_s raise UnknownThemeError, "unknown theme: #{theme.inspect}" unless THEMES.include?(theme) entry = @lookup.fetch(key) { raise UnknownTokenError, "unknown design token: #{key.inspect}" } value = resolve(entry, theme) if value.nil? raise UnknownTokenError, "design token #{key.inspect} has no Base value and no override for theme #{theme.inspect}" end value end |