Class: Mayu::Resources::Types::Stylesheet
- Extended by:
- T::Sig
- Defined in:
- lib/mayu/resources/types/stylesheet.rb
Defined Under Namespace
Classes: ClassNames
Constant Summary collapse
- Classes =
T.type_alias { T::Hash[Symbol, String] }
- MarshalFormat =
T.type_alias { [Classes, String, String, String] }
Instance Attribute Summary collapse
-
#classes ⇒ Object
readonly
Returns the value of attribute classes.
Instance Method Summary collapse
- #assets ⇒ Object
- #classnames ⇒ Object
-
#initialize(resource) ⇒ Stylesheet
constructor
A new instance of Stylesheet.
- #marshal_dump ⇒ Object
- #marshal_load(args) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(resource) ⇒ Stylesheet
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 57 def initialize(resource) super klasses = {} transform_result = Transformers::CSS.transform( source: resource.read(encoding: "utf-8"), source_path: resource.path ) transform_result.classes @source = T.let(transform_result.output, String) @content_hash = T.let(transform_result.content_hash, String) @classes = T.let(transform_result.classes, Classes) @filename = T.let(transform_result.filename, String) @source_map = T.let(transform_result.source_map, T::Hash[String, T.untyped]) @classnames = T.let(nil, T.nilable(ClassNames)) end |
Instance Attribute Details
#classes ⇒ Object (readonly)
Returns the value of attribute classes.
54 55 56 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 54 def classes @classes end |
Instance Method Details
#assets ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 84 def assets source_map_link = "\n/*# sourceMappingURL=#{@filename}.map */\n" [ Asset.new( @filename, Generators::WriteFile.new( contents: @source + source_map_link, compress: true ) ), Asset.new( @filename + ".map", Generators::WriteFile.new( contents: JSON.generate(@source_map), compress: true ) ) ] end |
#classnames ⇒ Object
79 80 81 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 79 def classnames @classnames ||= ClassNames.new(self.classes) end |
#marshal_dump ⇒ Object
108 109 110 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 108 def marshal_dump [@classes, @source, @content_hash, @filename] end |
#marshal_load(args) ⇒ Object
113 114 115 |
# File 'lib/mayu/resources/types/stylesheet.rb', line 113 def marshal_load(args) @classes, @source, @content_hash, @filename = args end |