grover 1.1.2 → 1.1.4
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/lib/active_support_ext/object/duplicable.rb +7 -107
- data/lib/grover/js/processor.cjs +13 -2
- data/lib/grover/version.rb +1 -1
- data/lib/grover.rb +2 -1
- metadata +31 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 605a1ddd3d51f652e03c28d8f6ab97b45e9f026884da2ea4772b57fc83287dd2
|
4
|
+
data.tar.gz: c4bc0069f551b4e15df0b59b42175b20bc3d8130fb2981b947b832e0f2e48e14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfdb35168bba8db20bc0ba7cf027d13ebb61670f2a89f059710129cdd3c7460f0b95f80a0cc7fbd2f334ca25348e733eccd1ce00bd380e6d65282e3018161572
|
7
|
+
data.tar.gz: '08cdc3c9c5ce2bf8c3d9c7d155db3cb558dd77e718008f7c8d5662188bf78071b611e3ad3aa2b3f32800b6595c492222c6f1a99768a2be983aa4e5e7f37b12f5'
|
@@ -31,88 +31,6 @@ class Object
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
class NilClass
|
35
|
-
begin
|
36
|
-
nil.dup
|
37
|
-
rescue TypeError
|
38
|
-
# +nil+ is not duplicable:
|
39
|
-
#
|
40
|
-
# nil.duplicable? # => false
|
41
|
-
# nil.dup # => TypeError: can't dup NilClass
|
42
|
-
def duplicable?
|
43
|
-
false
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
class FalseClass
|
49
|
-
begin
|
50
|
-
false.dup
|
51
|
-
rescue TypeError
|
52
|
-
# +false+ is not duplicable:
|
53
|
-
#
|
54
|
-
# false.duplicable? # => false
|
55
|
-
# false.dup # => TypeError: can't dup FalseClass
|
56
|
-
def duplicable?
|
57
|
-
false
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
class TrueClass
|
63
|
-
begin
|
64
|
-
true.dup
|
65
|
-
rescue TypeError
|
66
|
-
# +true+ is not duplicable:
|
67
|
-
#
|
68
|
-
# true.duplicable? # => false
|
69
|
-
# true.dup # => TypeError: can't dup TrueClass
|
70
|
-
def duplicable?
|
71
|
-
false
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
class Symbol
|
77
|
-
begin
|
78
|
-
:symbol.dup # Ruby 2.4.x.
|
79
|
-
'symbol_from_string'.to_sym.dup # Some symbols can't `dup` in Ruby 2.4.0.
|
80
|
-
rescue TypeError
|
81
|
-
# Symbols are not duplicable:
|
82
|
-
#
|
83
|
-
# :my_symbol.duplicable? # => false
|
84
|
-
# :my_symbol.dup # => TypeError: can't dup Symbol
|
85
|
-
def duplicable?
|
86
|
-
false
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
class Numeric
|
92
|
-
begin
|
93
|
-
1.dup
|
94
|
-
rescue TypeError
|
95
|
-
# Numbers are not duplicable:
|
96
|
-
#
|
97
|
-
# 3.duplicable? # => false
|
98
|
-
# 3.dup # => TypeError: can't dup Integer
|
99
|
-
def duplicable?
|
100
|
-
false
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
require 'bigdecimal'
|
106
|
-
class BigDecimal
|
107
|
-
# BigDecimals are duplicable:
|
108
|
-
#
|
109
|
-
# BigDecimal("1.2").duplicable? # => true
|
110
|
-
# BigDecimal("1.2").dup # => #<BigDecimal:...,'0.12E1',18(18)>
|
111
|
-
def duplicable?
|
112
|
-
true
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
34
|
class Method
|
117
35
|
# Methods are not duplicable:
|
118
36
|
#
|
@@ -123,30 +41,12 @@ class Method
|
|
123
41
|
end
|
124
42
|
end
|
125
43
|
|
126
|
-
class
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
# Complex(1).dup # => TypeError: can't copy Complex
|
134
|
-
def duplicable?
|
135
|
-
false
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
class Rational
|
141
|
-
begin
|
142
|
-
Rational(1).dup
|
143
|
-
rescue TypeError
|
144
|
-
# Rationals are not duplicable:
|
145
|
-
#
|
146
|
-
# Rational(1).duplicable? # => false
|
147
|
-
# Rational(1).dup # => TypeError: can't copy Rational
|
148
|
-
def duplicable?
|
149
|
-
false
|
150
|
-
end
|
44
|
+
class UnboundMethod
|
45
|
+
# Unbound methods are not duplicable:
|
46
|
+
#
|
47
|
+
# method(:puts).unbind.duplicable? # => false
|
48
|
+
# method(:puts).unbind.dup # => TypeError: allocator undefined for UnboundMethod
|
49
|
+
def duplicable?
|
50
|
+
false
|
151
51
|
end
|
152
52
|
end
|
data/lib/grover/js/processor.cjs
CHANGED
@@ -10,11 +10,18 @@ try {
|
|
10
10
|
}
|
11
11
|
process.stdout.write("[\"ok\"]\n");
|
12
12
|
|
13
|
+
const fs = require('fs');
|
14
|
+
const os = require('os');
|
15
|
+
const path = require('path');
|
16
|
+
|
13
17
|
const _processPage = (async (convertAction, urlOrHtml, options) => {
|
14
|
-
let browser, errors = [];
|
18
|
+
let browser, errors = [], tmpDir;
|
15
19
|
try {
|
20
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'grover-'));
|
21
|
+
|
16
22
|
const launchParams = {
|
17
|
-
args: process.env.GROVER_NO_SANDBOX === 'true' ? ['--no-sandbox', '--disable-setuid-sandbox'] : []
|
23
|
+
args: process.env.GROVER_NO_SANDBOX === 'true' ? ['--no-sandbox', '--disable-setuid-sandbox'] : [],
|
24
|
+
userDataDir: tmpDir
|
18
25
|
};
|
19
26
|
|
20
27
|
// Configure puppeteer debugging options
|
@@ -245,6 +252,10 @@ const _processPage = (async (convertAction, urlOrHtml, options) => {
|
|
245
252
|
if (browser) {
|
246
253
|
await browser.close();
|
247
254
|
}
|
255
|
+
|
256
|
+
try {
|
257
|
+
if (tmpDir) fs.rmSync(tmpDir, { recursive: true });
|
258
|
+
} catch { }
|
248
259
|
}
|
249
260
|
});
|
250
261
|
|
data/lib/grover/version.rb
CHANGED
data/lib/grover.rb
CHANGED
@@ -30,7 +30,8 @@ class Grover
|
|
30
30
|
#
|
31
31
|
# @param [String] url URL of the page to convert
|
32
32
|
# @param [Hash] options Optional parameters to pass to PDF processor
|
33
|
-
# see https://github.com/
|
33
|
+
# see https://github.com/puppeteer/puppeteer/blob/main/docs/api/puppeteer.pdfoptions.md
|
34
|
+
# and https://github.com/puppeteer/puppeteer/blob/main/docs/api/puppeteer.screenshotoptions.md
|
34
35
|
#
|
35
36
|
def initialize(url, **options)
|
36
37
|
@url = url.to_s
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Bromwich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: combine_pdf
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '4.
|
47
|
+
version: '4.12'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '4.
|
54
|
+
version: '4.12'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pdf-reader
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '2.
|
61
|
+
version: '2.11'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '2.
|
68
|
+
version: '2.11'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rack-test
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,56 +86,70 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '13.0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '13.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '3.
|
103
|
+
version: '3.12'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
110
|
+
version: '3.12'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rubocop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '1.43'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '1.43'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.6'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.6'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rubocop-rspec
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '2.18'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '2.18'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: simplecov
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,17 +205,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
205
|
requirements:
|
192
206
|
- - ">="
|
193
207
|
- !ruby/object:Gem::Version
|
194
|
-
version: 2.
|
208
|
+
version: 2.7.0
|
195
209
|
- - "<"
|
196
210
|
- !ruby/object:Gem::Version
|
197
|
-
version: 3.
|
211
|
+
version: 3.3.0
|
198
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
213
|
requirements:
|
200
214
|
- - ">="
|
201
215
|
- !ruby/object:Gem::Version
|
202
216
|
version: '0'
|
203
217
|
requirements: []
|
204
|
-
rubygems_version: 3.
|
218
|
+
rubygems_version: 3.4.4
|
205
219
|
signing_key:
|
206
220
|
specification_version: 4
|
207
221
|
summary: A Ruby gem to transform HTML into PDF, PNG or JPEG by wrapping the NodeJS
|