pakyow-core 1.0.1 → 1.0.6

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: '08c8101521e66a391edfb1260937f66edbf09636d02cf2b4ed1a168752f69b01'
4
- data.tar.gz: 3b43d74cb96581704b48ff4d1a8c63c76ce32438705df9a031f87f41d87e4c10
3
+ metadata.gz: 5bbd266fde598079a6a8a83a0cd72ca741b62d70a5b66d297d13d4f2c6107285
4
+ data.tar.gz: d6cc9b4d8473220a91ce9715844c113bb50586044cf4813a5e1fbbb50b06a085
5
5
  SHA512:
6
- metadata.gz: a7f430afd35c1279a4e0df05b88b9b82eca11db61c4bbdcd3d996abf45b80ec9cd2523f882ca6be236fa1a9d7c5ad6145a89c268c6b63a5ec498fc48e28702f7
7
- data.tar.gz: 89cf3982784d6d90699cb0c7d5e0b53dea4469cfb66c735e9d1b68d087b97595ea3b070ffc2b7ae6e016c72d5ce29de251cb3d22f760c8a10cbfce36947079c0
6
+ metadata.gz: 2aa195ed44ef3b1e99dd43ccefad981655accf1810adb0889af6fa598c877544c9219d5b9e98b51576c2c64ac393455ab78430adfe8bcefb122b579ae97d33bf
7
+ data.tar.gz: 55d7e4707016ee016245351408f348d5ebeebd1cb504cde441b6831263432f2770f9b399caa2633c2d533d140ee822bfe8fefcf65a5c05ed00648150848ac35d
@@ -1,9 +1,119 @@
1
- # UNRELEASED
1
+ # v1.0.4
2
2
 
3
- # 1.0.1
3
+ * `fix` **Typecast header values to strings.**
4
+ - Resolves an incompatibility with `protocol-http`.
4
5
 
5
- * Rename "navigable" to "navigator" in the generated app
6
+ *Related links:*
7
+ - [Pull Request #400][pr-400]
6
8
 
7
- # 1.0.0
9
+ * `fix` **Bundler deprecation warnings (prefer `with_original_env`).**
10
+
11
+ *Related links:*
12
+ - [Commit a4bf384][a4bf384]
13
+
14
+ [pr-400]: https://github.com/pakyow/pakyow/pull/400
15
+ [a4bf384]: https://github.com/pakyow/pakyow/commit/a4bf384a4e8ee648a5b8780043b743f024331c64
16
+
17
+ # v1.0.3
18
+
19
+ * `fix` **Resolve several issues with respawns, restarts.**
20
+
21
+ *Related links:*
22
+ - [Pull Request #342][pr-342]
23
+
24
+ * `fix` **Ensure a logger and output is always available in the environment.**
25
+
26
+ *Related links:*
27
+ - [Pull Request #331][pr-331]
28
+
29
+ * `fix` **Start multiple processes when the process count specifies more than one.**
30
+
31
+ *Related links:*
32
+ - [Pull Request #329][pr-329]
33
+
34
+ * `fix` **Prevent failed processes from restarting indefinitely.**
35
+
36
+ *Related links:*
37
+ - [Pull Request #328][pr-328]
38
+
39
+ [pr-342]: https://github.com/pakyow/pakyow/pull/342
40
+ [pr-331]: https://github.com/pakyow/pakyow/pull/331
41
+ [pr-329]: https://github.com/pakyow/pakyow/pull/329
42
+ [pr-328]: https://github.com/pakyow/pakyow/pull/328
43
+
44
+ # v1.0.2
45
+
46
+ * `fix` **Relocate `version.rb` from the meta gem into `pakyow/core`.**
47
+ - Makes it possible to use `pakyow/core` and other gems without needing the meta gem.
48
+
49
+ *Related links:*
50
+ - [Pull Request #320][pr-320]
51
+
52
+ * `fix` **Query string missing from normalized uris.**
53
+
54
+ *Related links:*
55
+ - [Pull Request #315][pr-315]
56
+
57
+ * `fix` **Remove recursive require from `logger/colorizer.rb`.**
58
+
59
+ *Related links:*
60
+ - [Pull Request #311][pr-311]
61
+
62
+ * `fix` **Always load `config/application` relative to `Pakyow.config.root`.**
63
+
64
+ *Related links:*
65
+ - [Pull Request #310][pr-310]
66
+
67
+ * `fix` **Issue with `Pakyow::Error` not detecting gems in rvm.**
68
+
69
+ *Related links:*
70
+ - [Pull Request #306][pr-306]
71
+
72
+ * `fix` **Correct several issues with incorrect error backtraces, improve performance.**
73
+
74
+ *Related links:*
75
+ - [Commit cdb9e15][cdb9e15]
76
+
77
+ * `fix` **App connection path is relative to to the app mount path.**
78
+
79
+ *Related links:*
80
+ - [Commit fc6209f][fc6209f]
81
+
82
+ * `fix` **Backend aspects now load alphabetically on every system.**
83
+
84
+ *Related links:*
85
+ - [Commit 47189b7][47189b7]
86
+
87
+ * `fix` **Respawn into the correct environment by clearing `tmp/restart.txt`.**
88
+
89
+ *Related links:*
90
+ - [Commit c9d5544][c9d5544]
91
+
92
+ * `fix` **CLI short code arguments are now passed to the task in the correct order.**
93
+
94
+ *Related links:*
95
+ - [Commit 8604c1e][8604c1e]
96
+
97
+ [pr-320]: https://github.com/pakyow/pakyow/pull/320
98
+ [pr-315]: https://github.com/pakyow/pakyow/pull/315
99
+ [pr-311]: https://github.com/pakyow/pakyow/pull/311
100
+ [pr-310]: https://github.com/pakyow/pakyow/pull/310
101
+ [pr-306]: https://github.com/pakyow/pakyow/pull/306
102
+ [cdb9e15]: https://github.com/pakyow/pakyow/commit/cdb9e15f9840da4b5e909dc29b68c70ffa996a36
103
+ [fc6209f]: https://github.com/pakyow/pakyow/commit/fc6209fa12f1a0865cbd1a9c7c7f74e853a83a2a
104
+ [47189b7]: https://github.com/pakyow/pakyow/commit/47189b7d9fbb443f593f8e1573ddd6532ece9008
105
+ [c9d5544]: https://github.com/pakyow/pakyow/commit/cdb9e15f9840da4b5e909dc29b68c70ffa996a36
106
+ [8604c1e]: https://github.com/pakyow/pakyow/commit/8604c1e43a559acba9ab123586eb85d71df92691
107
+
108
+ # v1.0.1
109
+
110
+ * Rename `navigable` to `navigator` in the generated app.
111
+
112
+ *Related links:*
113
+ - [Commit bc7d9a3][bc7d9a3]
114
+
115
+ [bc7d9a3]: https://github.com/pakyow/pakyow/commit/bc7d9a39031a28e05c91a614d7e447ab061ede21
116
+
117
+ # v1.0.0
8
118
 
9
119
  * Hello, Web
@@ -11,11 +11,11 @@ module Pakyow
11
11
 
12
12
  def call(connection)
13
13
  if strict_www? && require_www? && !www?(connection) && !subdomain?(connection)
14
- redirect!(connection, File.join(add_www(connection), connection.path))
14
+ redirect!(connection, File.join(add_www(connection), connection.fullpath))
15
15
  elsif strict_www? && !require_www? && www?(connection)
16
- redirect!(connection, File.join(remove_www(connection), connection.path))
16
+ redirect!(connection, File.join(remove_www(connection), connection.fullpath))
17
17
  elsif strict_path? && slash?(connection)
18
- redirect!(connection, String.normalize_path(connection.path))
18
+ redirect!(connection, String.normalize_path(connection.fullpath))
19
19
  end
20
20
  end
21
21
 
@@ -211,6 +211,11 @@ module Pakyow
211
211
  Pakyow.app(Marshal.load(state)[:name])
212
212
  end
213
213
 
214
+ # @api private
215
+ def top
216
+ self
217
+ end
218
+
214
219
  # @api private
215
220
  def perform(app_connection)
216
221
  @__pipeline.call(app_connection)
@@ -37,11 +37,11 @@ module Pakyow
37
37
  end
38
38
 
39
39
  def __load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class)
40
- Dir.glob(File.join(path, "*.rb")) do |file_path|
40
+ Dir.glob(File.join(path, "*.rb")).sort.each do |file_path|
41
41
  Loader.new(file_path).call(target)
42
42
  end
43
43
 
44
- Dir.glob(File.join(path, "*")).select { |sub_path| File.directory?(sub_path) }.each do |directory|
44
+ Dir.glob(File.join(path, "*")).select { |sub_path| File.directory?(sub_path) }.sort.each do |directory|
45
45
  __load_aspect(aspect, path: directory, target: target)
46
46
  end
47
47
  end
@@ -44,6 +44,11 @@ module Pakyow
44
44
  end
45
45
  end
46
46
 
47
+ def touch_restart
48
+ FileUtils.mkdir_p(File.join(config.root, "tmp"))
49
+ FileUtils.touch(File.join(config.root, "tmp/restart.txt"))
50
+ end
51
+
47
52
  private
48
53
 
49
54
  def setup_for_restarting
@@ -53,15 +58,14 @@ module Pakyow
53
58
 
54
59
  # FIXME: this doesn't need to be hardcoded, but instead determined
55
60
  # from the source location when registered with the environment
56
- config.process.watched_paths << "./config/application.rb"
61
+ config.process.watched_paths << File.join(config.root, "config/application.rb")
57
62
 
58
63
  Thread.new do
59
64
  Filewatcher.new(
60
65
  config.process.watched_paths,
61
66
  exclude: config.process.excluded_paths
62
67
  ).watch do |_path, _event|
63
- FileUtils.mkdir_p "./tmp"
64
- FileUtils.touch "./tmp/restart.txt"
68
+ touch_restart
65
69
  end
66
70
  end
67
71
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "delegate"
4
4
 
5
+ require "pakyow/support/core_refinements/string/normalization"
5
6
  require "pakyow/support/hookable"
6
7
 
7
8
  module Pakyow
@@ -20,6 +21,8 @@ module Pakyow
20
21
  include Behavior::Verifier
21
22
  include Behavior::Values
22
23
 
24
+ using Support::Refinements::String::Normalization
25
+
23
26
  def initialize(app, connection)
24
27
  performing :initialize do
25
28
  @app = app; __setobj__(connection)
@@ -32,6 +35,16 @@ module Pakyow
32
35
  end
33
36
  end
34
37
 
38
+ def path
39
+ unless instance_variable_defined?(:@path)
40
+ @path = String.normalize_path(
41
+ __getobj__.path.split(@app.mount_path, 2)[1]
42
+ )
43
+ end
44
+
45
+ @path
46
+ end
47
+
35
48
  def method
36
49
  __getobj__.method
37
50
  end
@@ -13,21 +13,21 @@ module Pakyow
13
13
 
14
14
  # Other processes (e.g. apps) can touch this file to restart the server.
15
15
  #
16
- watch "./tmp/restart.txt" do
16
+ watch File.join(config.root, "tmp/restart.txt") do
17
17
  restart
18
18
  end
19
19
 
20
20
  # Automatically bundle.
21
21
  #
22
- watch "./Gemfile" do
23
- Bundler.with_clean_env do
22
+ watch File.join(config.root, "Gemfile") do
23
+ Bundler.with_original_env do
24
24
  Support::CLI::Runner.new(message: "Bundling").run("bundle install")
25
25
  end
26
26
  end
27
27
 
28
28
  # Respawn when the bundle changes.
29
29
  #
30
- watch "./Gemfile.lock" do
30
+ watch File.join(config.root, "Gemfile.lock") do
31
31
  respawn
32
32
  end
33
33
 
@@ -44,7 +44,9 @@ module Pakyow
44
44
  # Set the respawn flag and stop the process manager.
45
45
  # Pakyow will check the flag and respawn from the main thread.
46
46
  #
47
- @respawn = true; @process_manager.stop
47
+ @respawn = true
48
+ @bound_endpoint.close
49
+ @process_manager.stop
48
50
  end
49
51
  end
50
52
  end
@@ -16,7 +16,7 @@ module Pakyow
16
16
  extend Support::Extension
17
17
 
18
18
  apply_extension do
19
- unfreezable :process_manager
19
+ unfreezable :process_manager, :bound_endpoint
20
20
 
21
21
  class_state :processes, default: []
22
22
 
@@ -42,7 +42,7 @@ module Pakyow
42
42
  "http://#{config.server.host}:#{port}"
43
43
  )
44
44
 
45
- bound_endpoint = Async::Reactor.run {
45
+ @bound_endpoint = Async::Reactor.run {
46
46
  Async::IO::SharedEndpoint.bound(endpoint)
47
47
  }.wait
48
48
 
@@ -52,7 +52,7 @@ module Pakyow
52
52
  Processes::Server.new(
53
53
  protocol: endpoint.protocol,
54
54
  scheme: endpoint.scheme,
55
- endpoint: bound_endpoint
55
+ endpoint: @bound_endpoint
56
56
  ).run
57
57
  end
58
58
 
@@ -69,7 +69,7 @@ module Pakyow
69
69
  @processes << {
70
70
  name: name,
71
71
  block: block,
72
- count: count,
72
+ count: count.to_i,
73
73
  restartable: restartable
74
74
  }
75
75
  end
@@ -100,7 +100,7 @@ module Pakyow
100
100
  #
101
101
  exec "PW_RESPAWN=true #{$0} #{ARGV.join(" ")}"
102
102
  end
103
- rescue SignalException
103
+ rescue SignalException, Interrupt
104
104
  exit
105
105
  end
106
106
 
@@ -114,6 +114,7 @@ module Pakyow
114
114
  Pakyow.logger << "Goodbye"
115
115
 
116
116
  performing :shutdown do
117
+ @bound_endpoint.close
117
118
  @process_manager.stop
118
119
  end
119
120
  end
@@ -103,7 +103,7 @@ module Pakyow
103
103
  end
104
104
 
105
105
  def parse_with_unknown_args
106
- parser, unknown, original, unparsed = yield, Array.new, @argv.dup, Array.new
106
+ parser, original, unparsed = yield, @argv.dup, Array.new
107
107
 
108
108
  begin
109
109
  parser.order!(@argv) do |arg|
@@ -114,10 +114,10 @@ module Pakyow
114
114
  end
115
115
  end
116
116
  rescue OptionParser::InvalidOption => error
117
- unknown.concat(error.args); retry
117
+ unparsed.concat(error.args); retry
118
118
  end
119
119
 
120
- @argv = (original & (@argv | unknown)) + unparsed
120
+ @argv = (original & @argv) + unparsed
121
121
  end
122
122
 
123
123
  def setup_environment
@@ -82,7 +82,7 @@ module Pakyow
82
82
  end
83
83
 
84
84
  def set_header(key, value)
85
- @headers[normalize_header(key)] = value
85
+ @headers[normalize_header(key)] = normalize_header_value(value)
86
86
  end
87
87
 
88
88
  def set_headers(headers)
@@ -370,6 +370,15 @@ module Pakyow
370
370
  key.to_s.downcase.gsub("_", "-")
371
371
  end
372
372
 
373
+ def normalize_header_value(value)
374
+ case value
375
+ when Array
376
+ value.map(&:to_s)
377
+ else
378
+ value.to_s
379
+ end
380
+ end
381
+
373
382
  DELETE_COOKIE = {
374
383
  value: nil, path: nil, domain: nil, max_age: 0, expires: Time.at(0)
375
384
  }.freeze
@@ -33,6 +33,7 @@ require "pakyow/actions/normalizer"
33
33
 
34
34
  require "pakyow/application"
35
35
 
36
+ require "pakyow/logger"
36
37
  require "pakyow/logger/destination"
37
38
  require "pakyow/logger/multiplexed"
38
39
  require "pakyow/logger/thread_local"
@@ -135,17 +136,32 @@ module Pakyow
135
136
  #
136
137
  attr_reader :env
137
138
 
138
- # Logger instance for the environment
139
+ # Any error encountered during the boot process
139
140
  #
140
- attr_reader :logger
141
+ attr_reader :error
141
142
 
142
- # Global logger instance
143
+ # Global log output.
144
+ #
145
+ # Builds and returns a default global output that's replaced in `setup`.
143
146
  #
144
- attr_reader :global_logger
147
+ def global_logger
148
+ unless defined?(@global_logger)
149
+ require "pakyow/logger/formatters/human"
150
+ @global_logger = Logger::Formatters::Human.new(
151
+ Logger::Destination.new(:stdout, $stdout)
152
+ )
153
+ end
145
154
 
146
- # Any error encountered during the boot process
155
+ @global_logger
156
+ end
157
+
158
+ # Logger instance for the environment.
147
159
  #
148
- attr_reader :error
160
+ # Builds and returns a default logger that's replaced in `setup`.
161
+ #
162
+ def logger
163
+ @logger ||= Logger.new("dflt", output: global_logger, level: :all)
164
+ end
149
165
 
150
166
  # Mounts an app at a path.
151
167
  #
@@ -182,7 +198,7 @@ module Pakyow
182
198
  # Loads apps located in the current project.
183
199
  #
184
200
  def load_apps
185
- require "./config/application"
201
+ require File.join(config.root, "config/application")
186
202
  end
187
203
 
188
204
  # Prepares the environment for booting.
@@ -200,20 +216,24 @@ module Pakyow
200
216
  end
201
217
 
202
218
  performing :setup do
203
- init_global_logger
219
+ destinations = Logger::Multiplexed.new(
220
+ *config.logger.destinations.map { |destination, io|
221
+ io.sync = config.logger.sync
222
+ Logger::Destination.new(destination, io)
223
+ }
224
+ )
225
+
226
+ @global_logger = config.logger.formatter.new(destinations)
227
+
228
+ @logger = Logger::ThreadLocal.new(
229
+ Logger.new("pkyw", output: @global_logger, level: config.logger.level)
230
+ )
231
+
232
+ Console.logger = Logger.new("asnc", output: @global_logger, level: :warn)
204
233
  end
205
234
 
206
235
  self
207
236
  rescue => error
208
- begin
209
- # Try again to initialize the logger, since we may have failed before that point.
210
- #
211
- unless Pakyow.logger
212
- init_global_logger
213
- end
214
- rescue
215
- end
216
-
217
237
  @setup_error = error; self
218
238
  end
219
239
 
@@ -344,23 +364,6 @@ module Pakyow
344
364
 
345
365
  private
346
366
 
347
- def init_global_logger
348
- destinations = Logger::Multiplexed.new(
349
- *config.logger.destinations.map { |destination, io|
350
- io.sync = config.logger.sync
351
- Logger::Destination.new(destination, io)
352
- }
353
- )
354
-
355
- @global_logger = config.logger.formatter.new(destinations)
356
-
357
- @logger = Logger::ThreadLocal.new(
358
- Logger.new("pkyw", output: @global_logger, level: config.logger.level)
359
- )
360
-
361
- Console.logger = Logger.new("asnc", output: @global_logger, level: :warn)
362
- end
363
-
364
367
  def ensure_setup_succeeded
365
368
  if @setup_error
366
369
  handle_boot_failure(@setup_error)
@@ -370,23 +373,11 @@ module Pakyow
370
373
  def handle_boot_failure(error)
371
374
  @error = error
372
375
 
373
- safe_logger do |logger|
374
- if logger.respond_to?(:houston)
375
- logger.houston(error)
376
- else
377
- logger.error(error)
378
- end
379
- end
376
+ logger.houston(error)
380
377
 
381
378
  if config.exit_on_boot_failure
382
379
  exit(false)
383
380
  end
384
381
  end
385
-
386
- require "logger"
387
-
388
- def safe_logger
389
- yield logger || ::Logger.new($stdout)
390
- end
391
382
  end
392
383
  end
@@ -11,7 +11,7 @@ module Pakyow
11
11
  module Generators
12
12
  class Project < Generator
13
13
  after "generate" do
14
- Bundler.with_clean_env do
14
+ Bundler.with_original_env do
15
15
  run "bundle install --binstubs", message: "Bundling dependencies"
16
16
  end
17
17
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require "pakyow/support/cli/style"
4
4
 
5
- require "pakyow/logger"
6
-
7
5
  module Pakyow
8
6
  class Logger
9
7
  # Helpers for colorizing log messages.
@@ -207,6 +207,10 @@ module Pakyow
207
207
  end
208
208
  end
209
209
 
210
+ def top
211
+ parent.top
212
+ end
213
+
210
214
  private
211
215
 
212
216
  def build_key
@@ -36,18 +36,23 @@ module Pakyow
36
36
  private
37
37
 
38
38
  def run_process(process)
39
- Fiber.new {
40
- until @stopped
41
- status = @group.fork(process) {
42
- begin
43
- Async::Reactor.run(&process[:block])
39
+ process[:count].times do
40
+ Fiber.new {
41
+ until @stopped
42
+ status = @group.fork(process) do
43
+ Async do
44
+ process[:block].call
45
+ rescue => error
46
+ Pakyow.logger.houston(error)
47
+ exit 1
48
+ end
44
49
  rescue Interrupt
45
50
  end
46
- }
47
51
 
48
- break unless status.success?
49
- end
50
- }.resume
52
+ break unless status.success?
53
+ end
54
+ }.resume
55
+ end
51
56
  end
52
57
  end
53
58
  end
@@ -21,7 +21,7 @@ module Pakyow
21
21
  end
22
22
 
23
23
  def request_header(key)
24
- normalize_header_value(key, @request.get_header(normalize_header(key)))
24
+ normalize_header_key_value(key, @request.get_header(normalize_header(key)))
25
25
  end
26
26
 
27
27
  def request_header?(key)
@@ -56,7 +56,7 @@ module Pakyow
56
56
  key.to_s.upcase.gsub("-", "_")
57
57
  end
58
58
 
59
- def normalize_header_value(key, value)
59
+ def normalize_header_key_value(key, value)
60
60
  if value && policy = Protocol::HTTP::Headers::MERGE_POLICY[key.to_s.downcase.gsub("_", "-")]
61
61
  policy.new(value.to_s)
62
62
  else
@@ -62,9 +62,9 @@ module Pakyow
62
62
  @validations.any?
63
63
  end
64
64
 
65
- def validate(validation_name = nil, **options)
65
+ def validate(validation_name = nil, **options, &block)
66
66
  validation_object = if block_given?
67
- Validations::Inline.new(validation_name, Proc.new)
67
+ Validations::Inline.new(validation_name, block)
68
68
  else
69
69
  self.class.validation_object_for(validation_name)
70
70
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pakyow
4
+ # Pakyow's current version.
5
+ #
6
+ VERSION = "1.0.6"
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pakyow-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
- autorequire:
8
+ autorequire:
9
9
  bindir: commands
10
10
  cert_chain: []
11
- date: 2019-07-16 00:00:00.000000000 Z
11
+ date: 2020-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pakyow-support
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.1
19
+ version: 1.0.6
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.1
26
+ version: 1.0.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: async
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.19'
33
+ version: '1.23'
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.19'
40
+ version: '1.23'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: async-http
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.46.3
47
+ version: 0.49.0
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: 0.46.3
54
+ version: 0.49.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: async-io
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.23'
61
+ version: '1.27'
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.23'
68
+ version: '1.27'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.4'
89
+ version: '1.5'
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: '1.4'
96
+ version: '1.5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: dry-types
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.1'
103
+ version: '1.2'
104
104
  type: :runtime
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: '1.1'
110
+ version: '1.2'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: filewatcher
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0.9'
131
+ version: 0.9.2
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0.9'
138
+ version: 0.9.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: mini_mime
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '12.3'
187
+ version: '13.0'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '12.3'
194
+ version: '13.0'
195
195
  description: Core functionality for Pakyow
196
196
  email: bryan@bryanp.org
197
197
  executables:
@@ -317,11 +317,12 @@ files:
317
317
  - lib/pakyow/validations/presence.rb
318
318
  - lib/pakyow/validator.rb
319
319
  - lib/pakyow/verifier.rb
320
+ - lib/pakyow/version.rb
320
321
  homepage: https://pakyow.com
321
322
  licenses:
322
323
  - LGPL-3.0
323
324
  metadata: {}
324
- post_install_message:
325
+ post_install_message:
325
326
  rdoc_options: []
326
327
  require_paths:
327
328
  - lib
@@ -336,8 +337,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
336
337
  - !ruby/object:Gem::Version
337
338
  version: '0'
338
339
  requirements: []
339
- rubygems_version: 3.0.3
340
- signing_key:
340
+ rubygems_version: 3.1.2
341
+ signing_key:
341
342
  specification_version: 4
342
343
  summary: Pakyow Core
343
344
  test_files: []