Class: Mayu::Resources::Types::JavaScript

Inherits:
Base
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/mayu/resources/types/javascript.rb

Constant Summary collapse

MarshalFormat =
T.type_alias { [String, String] }

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#generate_assets, #name

Constructor Details

#initialize(resource) ⇒ JavaScript



16
17
18
19
20
21
22
23
24
# File 'lib/mayu/resources/types/javascript.rb', line 16

def initialize(resource)
  super
  @filename =
    T.let(
      Base64.urlsafe_encode64(@resource.content_hash).+(".js").freeze,
      String
    )
  @source = T.let(resource.read(encoding: "utf-8").freeze, String)
end

Instance Attribute Details

#filenameObject (readonly)

Returns the value of attribute filename.



13
14
15
# File 'lib/mayu/resources/types/javascript.rb', line 13

def filename
  @filename
end

Instance Method Details

#assetsObject



27
28
29
30
31
32
33
34
# File 'lib/mayu/resources/types/javascript.rb', line 27

def assets
  [
    Asset.new(
      filename,
      Generators::WriteFile.new(contents: @source, compress: true)
    )
  ]
end

#marshal_dumpObject



39
40
41
# File 'lib/mayu/resources/types/javascript.rb', line 39

def marshal_dump
  [@filename, @source]
end

#marshal_load(args) ⇒ Object



44
45
46
# File 'lib/mayu/resources/types/javascript.rb', line 44

def marshal_load(args)
  @filename, @source = args
end