hanami-assets 1.3.4 → 2.1.0.beta2

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