pakyow-assets 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 746e7e7c48cda01bc9af5c39046555a2edfa84ecc1630a6db45188dbea309e41
4
- data.tar.gz: d987738e7acfe4e33561a0184ef7ca6d72b5b57e26c4bf8f941e64767bd1c4ee
3
+ metadata.gz: 6d835e94d5a1dc792fb8e3f0f943780e6ae6e9d477742b4a03c470a0afa664d5
4
+ data.tar.gz: 6b9c1c1f17ad8a054d91c1e37940d6cefbc88f9d7e2a76439bd40edce7f0dd98
5
5
  SHA512:
6
- metadata.gz: 218fa281e07d4186efdb00dbbfb0cb3ca50aa0e30d9b0acc27c5b721e1742bbe6e421bdaa7d32d15639908102c6a4ecda96423d6e9e4f6d0cb0fe04c70b2e250
7
- data.tar.gz: 0c1e437823e6bd50f8144b9dde7b2717ebc68551883d5cd880580191a8199a3698f4fa2eea2f44df0b646583674c16ee2410b6e483bca1fb9f47e9530170d2a9
6
+ metadata.gz: 39a751d90c7d04f47e2c88be8dcce709c4a809caad1c62c5e7a0df2859e7ad17f314f723e9202d087426406d6f58aa0d01d29bd17aec83eeaf56de8e0a011ee7
7
+ data.tar.gz: 23252b5168d08e7cbc0c8d038e21219bd81e777b3f7d2fa5ee0826f0508ecbe3bf9073d111a35a73bc37052d6cea0d78a4fc60fa4aa30fb9f097a9ff33fa0620
@@ -1,4 +1,17 @@
1
- # v1.0.2 (unreleased)
1
+ # v1.0.3 (unreleased)
2
+
3
+ * `fix` **Make `pakyow/assets` compatible with Ruby 2.7.0.**
4
+ - External assets used the `http` gem, which is failing on Ruby 2.7.0-preview3. We replaced it
5
+ with the `async-http` gem which is already a dependency of other Pakyow frameworks.
6
+
7
+ *Related links:*
8
+ - [Pull Request #362][pr-362]
9
+ - [Commit 4278340][4278340]
10
+
11
+ [pr-362]: https://github.com/pakyow/pakyow/pull/362/commits
12
+ [4278340]: https://github.com/pakyow/pakyow/commit/4278340178abea1dc7891ed02d098c5b747b2d5b
13
+
14
+ # v1.0.2
2
15
 
3
16
  * `fix` **CDN prefix is now correctly added to assets in plugin views.**
4
17
 
@@ -52,8 +52,7 @@ module Pakyow
52
52
  end
53
53
 
54
54
  if fetched
55
- FileUtils.mkdir_p "./tmp"
56
- FileUtils.touch "./tmp/restart.txt"
55
+ touch_restart
57
56
  end
58
57
  end
59
58
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "http"
4
-
5
3
  require "pakyow/support/cli/runner"
6
4
 
7
5
  module Pakyow
@@ -58,46 +56,82 @@ module Pakyow
58
56
  end
59
57
 
60
58
  Support::CLI::Runner.new(message: "Fetching #{file_with_version}").run do |runner|
61
- begin
62
- response = HTTP.follow(true).get(
59
+ Async do
60
+ downloader = Downloader.new(
61
+ File.join(@config.externals.provider, package_with_version, file.to_s)
62
+ ).perform
63
+
64
+ FileUtils.mkdir_p(@config.externals.path)
65
+
66
+ fetched_version = downloader.path.to_s.split(@package.to_s, 2)[1].split("/", 2)[0].split("@", 2)[1]
67
+ file_basename = File.basename(file.to_s, File.extname(file.to_s))
68
+
69
+ local_path = if file && file_basename != name.to_s
63
70
  File.join(
64
- @config.externals.provider,
65
- package_with_version,
66
- file.to_s
71
+ @config.externals.path,
72
+ "#{name}@#{fetched_version}__#{file_basename}.js"
67
73
  )
68
- )
69
-
70
- if response.code == 200
71
- FileUtils.mkdir_p(@config.externals.path)
72
-
73
- fetched_version = response.uri.to_s.split(@package.to_s, 2)[1].split("/", 2)[0].split("@", 2)[1]
74
- file_basename = File.basename(file.to_s, File.extname(file.to_s))
75
-
76
- local_path = if file && file_basename != name.to_s
77
- File.join(
78
- @config.externals.path,
79
- "#{name}@#{fetched_version}__#{file_basename}.js"
80
- )
81
- else
82
- File.join(
83
- @config.externals.path,
84
- "#{name}@#{fetched_version}.js"
85
- )
86
- end
87
-
88
- File.open(local_path, "w") do |fp|
89
- fp.write(response.body.to_s)
90
- end
91
-
92
- runner.succeeded
93
74
  else
94
- runner.failed(response.to_s)
75
+ File.join(
76
+ @config.externals.path,
77
+ "#{name}@#{fetched_version}.js"
78
+ )
95
79
  end
96
- rescue HTTP::ConnectionError => error
80
+
81
+ File.open(local_path, "w") do |fp|
82
+ fp.write(downloader.body.to_s)
83
+ end
84
+
85
+ runner.succeeded
86
+ rescue Downloader::Failed => error
97
87
  runner.failed(error.to_s)
98
88
  end
99
89
  end
100
90
  end
91
+
92
+ require "uri"
93
+
94
+ require "async"
95
+ require "async/http/internet"
96
+
97
+ # @api private
98
+ class Downloader
99
+ attr_reader :status, :body, :path
100
+
101
+ def initialize(uri)
102
+ @uri = URI.parse(uri)
103
+ end
104
+
105
+ def perform
106
+ get(@uri.path); self
107
+ end
108
+
109
+ private def get(path)
110
+ @path = path
111
+ internet = Async::HTTP::Internet.new
112
+ response = internet.get(build_uri(path))
113
+ @status = response.status
114
+
115
+ if response.status == 301 || response.status == 302
116
+ get(response.headers["location"])
117
+ elsif response.status >= 500
118
+ raise Failed, "Unexpected response status: #{response.status}"
119
+ else
120
+ @body = response.body.read
121
+ end
122
+ rescue SocketError => error
123
+ raise Failed.build(error)
124
+ ensure
125
+ response&.close
126
+ internet&.close
127
+ end
128
+
129
+ private def build_uri(path)
130
+ File.join("#{@uri.scheme}://#{@uri.host}", path)
131
+ end
132
+
133
+ class Failed < Error; end
134
+ end
101
135
  end
102
136
  end
103
137
  end
@@ -25,7 +25,7 @@ module Pakyow
25
25
 
26
26
  def process(content)
27
27
  result = if transformable?
28
- transformed = Babel.transform(content, @options)
28
+ transformed = Babel.transform(content, **@options)
29
29
  { content: transformed["code"], map: transformed["map"] }
30
30
  else
31
31
  { content: content, map: "" }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pakyow-assets
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
  - Bryan Powell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-06 00:00:00.000000000 Z
11
+ date: 2019-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pakyow-core
@@ -16,84 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.2
19
+ version: 1.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.2
26
+ version: 1.0.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pakyow-presenter
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.2
33
+ version: 1.0.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.2
40
+ version: 1.0.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pakyow-routing
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.2
47
+ version: 1.0.3
48
48
  type: :runtime
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: 1.0.2
54
+ version: 1.0.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pakyow-support
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.2
61
+ version: 1.0.3
62
62
  type: :runtime
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: 1.0.2
68
+ version: 1.0.3
69
69
  - !ruby/object:Gem::Dependency
70
- name: execjs
70
+ name: async-http
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.7'
75
+ version: 0.49.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.7'
82
+ version: 0.49.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: http
84
+ name: execjs
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '4.2'
89
+ version: '2.7'
90
90
  type: :runtime
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: '4.2'
96
+ version: '2.7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mini_mime
99
99
  requirement: !ruby/object:Gem::Requirement