hanami-assets 1.3.5 → 2.1.0.beta2

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +92 -314
  4. data/hanami-assets.gemspec +26 -33
  5. data/lib/hanami/assets/asset.rb +83 -0
  6. data/lib/hanami/assets/base_url.rb +64 -0
  7. data/lib/hanami/assets/config.rb +106 -0
  8. data/lib/hanami/assets/errors.rb +46 -0
  9. data/lib/hanami/assets/version.rb +2 -2
  10. data/lib/hanami/assets.rb +61 -143
  11. data/lib/hanami-assets.rb +3 -0
  12. metadata +33 -115
  13. data/lib/hanami/assets/bundler/asset.rb +0 -100
  14. data/lib/hanami/assets/bundler/compressor.rb +0 -63
  15. data/lib/hanami/assets/bundler/manifest_entry.rb +0 -64
  16. data/lib/hanami/assets/bundler.rb +0 -154
  17. data/lib/hanami/assets/cache.rb +0 -102
  18. data/lib/hanami/assets/compiler.rb +0 -287
  19. data/lib/hanami/assets/compilers/less.rb +0 -31
  20. data/lib/hanami/assets/compilers/sass.rb +0 -61
  21. data/lib/hanami/assets/compressors/abstract.rb +0 -119
  22. data/lib/hanami/assets/compressors/builtin_javascript.rb +0 -36
  23. data/lib/hanami/assets/compressors/builtin_stylesheet.rb +0 -57
  24. data/lib/hanami/assets/compressors/closure_javascript.rb +0 -25
  25. data/lib/hanami/assets/compressors/javascript.rb +0 -77
  26. data/lib/hanami/assets/compressors/jsmin.rb +0 -284
  27. data/lib/hanami/assets/compressors/null_compressor.rb +0 -19
  28. data/lib/hanami/assets/compressors/sass_stylesheet.rb +0 -36
  29. data/lib/hanami/assets/compressors/stylesheet.rb +0 -77
  30. data/lib/hanami/assets/compressors/uglifier_javascript.rb +0 -25
  31. data/lib/hanami/assets/compressors/yui_javascript.rb +0 -25
  32. data/lib/hanami/assets/compressors/yui_stylesheet.rb +0 -25
  33. data/lib/hanami/assets/config/global_sources.rb +0 -52
  34. data/lib/hanami/assets/config/manifest.rb +0 -142
  35. data/lib/hanami/assets/config/sources.rb +0 -80
  36. data/lib/hanami/assets/configuration.rb +0 -657
  37. data/lib/hanami/assets/helpers.rb +0 -945
  38. data/lib/hanami/assets/precompiler.rb +0 -97
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "fileutils"
4
- require "hanami/assets/compiler"
5
-
6
- module Hanami
7
- module Assets
8
- # Precompile all the assets, coming from all the applications and third
9
- # party gems into the public directory of the project.
10
- #
11
- # @since 0.1.0
12
- # @api private
13
- class Precompiler
14
- # Return a new instance
15
- #
16
- # @param configuration [Hanami::Assets::Configuration] the MAIN
17
- # configuration of Hanami::Assets
18
- #
19
- # @param duplicates [Array<Hanami::Assets>] the duplicated frameworks
20
- # (one for each application)
21
- #
22
- # @return [Hanami::Assets::Precompiler] a new instance
23
- #
24
- # @since 0.1.0
25
- # @api private
26
- def initialize(configuration, duplicates)
27
- @configuration = configuration
28
- @duplicates = duplicates
29
- end
30
-
31
- # Start the process
32
- #
33
- # @since 0.1.0
34
- # @api private
35
- def run
36
- clear_assets_directory
37
- precompile
38
- end
39
-
40
- private
41
-
42
- # @since 0.3.0
43
- # @api private
44
- def clear_assets_directory
45
- delete @configuration.manifest_path
46
- delete @configuration.destination_directory
47
- end
48
-
49
- # @since 0.3.0
50
- # @api private
51
- def clear_manifest(manifest)
52
- JSON.parse(manifest).each_value do |asset_hash|
53
- asset_file_name = @configuration.public_directory.join(asset_hash["target"])
54
- asset_file_name.unlink if asset_file_name.exist?
55
- end
56
- rescue JSON::ParserError
57
- warn "Non JSON manifest found and unlinked."
58
- ensure
59
- manifest.unlink
60
- end
61
-
62
- # @since 0.1.0
63
- # @api private
64
- def precompile
65
- applications.each do |duplicate|
66
- config = if duplicate.respond_to?(:configuration)
67
- duplicate.configuration
68
- else
69
- duplicate
70
- end
71
-
72
- config.compile true
73
-
74
- config.files.each do |file|
75
- Compiler.compile(config, file)
76
- end
77
- end
78
- end
79
-
80
- # @since 0.1.0
81
- # @api private
82
- def applications
83
- if @duplicates.empty?
84
- [@configuration]
85
- else
86
- @duplicates
87
- end
88
- end
89
-
90
- # @since 0.3.0
91
- # @api private
92
- def delete(path)
93
- FileUtils.rm_rf(path) if path.exist?
94
- end
95
- end
96
- end
97
- end