gotenberg 1.0.2 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f53f3f0cd1c87eae43c03fb07bc9bd9096deaa27fe9d6c2cb85f2dbf04f2e24
4
- data.tar.gz: c79d077d87f6f60513fe293c92442527847fab4fc9c269780375c21b18b098de
3
+ metadata.gz: 489dc50093dc4d7dfcf8934e4f7f1e66c42c3ee331b8f6712206a4f9e4bb3f95
4
+ data.tar.gz: 32a0dacebb19c92447cc448ea93fa94de7081cc7fdff11a5fd271d20d262ae1e
5
5
  SHA512:
6
- metadata.gz: 5628e26404b94a39b1215be8ef597987493a01a61d9a1bddd28a912bd457bc499f99b25d0b67425bb7daf6b85d8ad37d0a478afcca231863b53631012424895d
7
- data.tar.gz: '069da1f064e1b24b87d494efda58e2eb80387aae039db6a06067bb2f89db3dd7f6a0764623bb634623dcf5683b4cce7f0b931ae922371afebf3e6711432107ca'
6
+ metadata.gz: a39d81adfa325e16a1a9e5105103e1e9f68acd22600d6b56fcf951f8a45c97353eb676dc1e36c17f6f9113ef20c4bfe05280cc0fa53552a18f4a6d3d176d6674
7
+ data.tar.gz: dc6294d7356a315e002eb47e8a311908c541c18b0980e3d29325558fd72612bcb628f999f9b841b88c7e68480796a4adb49437a8bd20690f990c76a2771bb2c9
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gotenberg
4
+ module Assets
5
+ ASSET_TYPES = {
6
+ "js" => "javascripts",
7
+ "css" => "stylesheets",
8
+
9
+ # Fonts
10
+ "otf" => "fonts",
11
+ "ttf" => "fonts",
12
+ "woff" => "fonts",
13
+ "woff2" => "fonts",
14
+ "eot" => "fonts",
15
+ "sfnt" => "fonts",
16
+ "fnt" => "fonts",
17
+ "pfa" => "fonts",
18
+ "pfb" => "fonts",
19
+ "afm" => "fonts",
20
+ "pcf" => "fonts",
21
+ "snf" => "fonts",
22
+ "bdf" => "fonts",
23
+
24
+ # Images
25
+ "bmp" => "images",
26
+ "gif" => "images",
27
+ "jpg" => "images",
28
+ "jpeg" => "images",
29
+ "png" => "images",
30
+ "svg" => "images",
31
+ "tiff" => "images",
32
+ "tif" => "images",
33
+ "webp" => "images",
34
+ "ico" => "images",
35
+ "psd" => "images",
36
+ "heic" => "images"
37
+ }.freeze
38
+ end
39
+ end
@@ -49,7 +49,7 @@ module Gotenberg
49
49
  # pdf_content = client.html(htmls, asset_paths, properties)
50
50
  #
51
51
  # Credit: https://github.com/jbd0101/ruby-gotenberg-client/blob/master/lib/gotenberg.rb
52
- def html(htmls, asset_paths, properties = {}) # rubocop:disable Metrics/CyclomaticComplexity
52
+ def html(htmls, asset_paths, properties = {})
53
53
  raise GotenbergDownError unless up?
54
54
 
55
55
  raise IndexFileMissing unless (htmls.keys & ["index", :index]).any?
@@ -67,6 +67,12 @@ module Gotenberg
67
67
  # Gotenberg requires all files to be in the same directory
68
68
  asset_paths.each do |path|
69
69
  FileUtils.cp(path, dir_path)
70
+ next unless path.split(".").last == "css"
71
+
72
+ # This preprocessing is necessary for the gotenberg
73
+ raw_css = File.read(path)
74
+ preprocessed = raw_css.gsub("url(/assets/", "url(").gsub("url(/", "url(")
75
+ File.write(path, preprocessed)
70
76
  end
71
77
 
72
78
  # Rejecting .. and .
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "assets"
4
+
3
5
  module Gotenberg
4
6
  module Helper # rubocop:disable Style/Documentation
5
7
  class ExtensionMissing < StandardError; end
@@ -87,12 +89,7 @@ module Gotenberg
87
89
 
88
90
  raise ExtensionMissing if ext.empty?
89
91
 
90
- asset_type =
91
- case ext
92
- when "js" then "javascripts"
93
- when "css" then "stylesheets"
94
- else "images"
95
- end
92
+ asset_type = Assets::ASSET_TYPES.fetch(ext)
96
93
 
97
94
  determine_static_path(asset_type, asset_name)
98
95
  end
@@ -106,6 +103,16 @@ module Gotenberg
106
103
  ActionController::Base.helpers.asset_path(asset_name)
107
104
  end
108
105
 
106
+ # Returns the compiled name of an asset.
107
+ #
108
+ # @param asset_name [String] the name of the asset
109
+ # @return [String] the compiled name of the asset
110
+
111
+ def goten_compiled_asset_name(asset_name)
112
+ path = goten_compiled_asset_path(asset_name)
113
+ path.split("/").last
114
+ end
115
+
109
116
  private
110
117
 
111
118
  # Determines and returns the static path of an asset.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gotenberg
4
- VERSION = "1.0.2"
4
+ VERSION = "1.0.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gotenberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bugloper
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-06-20 00:00:00.000000000 Z
12
+ date: 2024-06-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mime-types
@@ -47,6 +47,7 @@ extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
49
  - lib/gotenberg.rb
50
+ - lib/gotenberg/assets.rb
50
51
  - lib/gotenberg/client.rb
51
52
  - lib/gotenberg/helper.rb
52
53
  - lib/gotenberg/railtie.rb