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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +92 -314
- data/hanami-assets.gemspec +26 -33
- data/lib/hanami/assets/asset.rb +83 -0
- data/lib/hanami/assets/base_url.rb +64 -0
- data/lib/hanami/assets/config.rb +106 -0
- data/lib/hanami/assets/errors.rb +46 -0
- data/lib/hanami/assets/version.rb +2 -2
- data/lib/hanami/assets.rb +61 -143
- data/lib/hanami-assets.rb +3 -0
- metadata +33 -115
- data/lib/hanami/assets/bundler/asset.rb +0 -100
- data/lib/hanami/assets/bundler/compressor.rb +0 -63
- data/lib/hanami/assets/bundler/manifest_entry.rb +0 -64
- data/lib/hanami/assets/bundler.rb +0 -154
- data/lib/hanami/assets/cache.rb +0 -102
- data/lib/hanami/assets/compiler.rb +0 -287
- data/lib/hanami/assets/compilers/less.rb +0 -31
- data/lib/hanami/assets/compilers/sass.rb +0 -61
- data/lib/hanami/assets/compressors/abstract.rb +0 -119
- data/lib/hanami/assets/compressors/builtin_javascript.rb +0 -36
- data/lib/hanami/assets/compressors/builtin_stylesheet.rb +0 -57
- data/lib/hanami/assets/compressors/closure_javascript.rb +0 -25
- data/lib/hanami/assets/compressors/javascript.rb +0 -77
- data/lib/hanami/assets/compressors/jsmin.rb +0 -284
- data/lib/hanami/assets/compressors/null_compressor.rb +0 -19
- data/lib/hanami/assets/compressors/sass_stylesheet.rb +0 -36
- data/lib/hanami/assets/compressors/stylesheet.rb +0 -77
- data/lib/hanami/assets/compressors/uglifier_javascript.rb +0 -25
- data/lib/hanami/assets/compressors/yui_javascript.rb +0 -25
- data/lib/hanami/assets/compressors/yui_stylesheet.rb +0 -25
- data/lib/hanami/assets/config/global_sources.rb +0 -52
- data/lib/hanami/assets/config/manifest.rb +0 -142
- data/lib/hanami/assets/config/sources.rb +0 -80
- data/lib/hanami/assets/configuration.rb +0 -657
- data/lib/hanami/assets/helpers.rb +0 -945
- 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
|