hanami-assets 1.3.5 → 2.1.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
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