Class: Mxrb::Model::DesignMaterializer
- Inherits:
-
Object
- Object
- Mxrb::Model::DesignMaterializer
- Defined in:
- lib/mxrb/model/design_materializer.rb
Overview
Materializes the typed design-system contract into MXRB-owned theme files.
Constant Summary collapse
- IMPORT =
'@import "mxrb-design-system";'
Instance Method Summary collapse
-
#initialize(root, definition) ⇒ DesignMaterializer
constructor
A new instance of DesignMaterializer.
- #materialize! ⇒ Object
Constructor Details
#initialize(root, definition) ⇒ DesignMaterializer
Returns a new instance of DesignMaterializer.
12 13 14 15 |
# File 'lib/mxrb/model/design_materializer.rb', line 12 def initialize(root, definition) @root = File.(root) @definition = definition end |
Instance Method Details
#materialize! ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/mxrb/model/design_materializer.rb', line 17 def materialize! tokens = valued_tokens(@definition.fetch(:tokens, [])) themes = resolved_themes return self if tokens.empty? && themes.empty? write(File.join('theme', 'web', '_mxrb-design-system.scss'), stylesheet(tokens, themes)) ensure_import write( File.join('themesource', 'mxrb', 'web', 'design-properties.json'), JSON.pretty_generate(design_properties(tokens)) << "\n" ) self end |