pakyow-core 1.0.0.rc5 → 1.0.0

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/pakyow/{environment/actions → actions}/dispatch.rb +0 -0
  4. data/lib/pakyow/{environment/actions → actions}/input_parser.rb +0 -0
  5. data/lib/pakyow/{environment/actions → actions}/logger.rb +0 -0
  6. data/lib/pakyow/{environment/actions → actions}/normalizer.rb +0 -0
  7. data/lib/pakyow/{app.rb → application.rb} +26 -26
  8. data/lib/pakyow/application/behavior/aspects.rb +51 -0
  9. data/lib/pakyow/application/behavior/endpoints.rb +43 -0
  10. data/lib/pakyow/application/behavior/frameworks.rb +47 -0
  11. data/lib/pakyow/application/behavior/helpers.rb +107 -0
  12. data/lib/pakyow/{environment → application}/behavior/initializers.rb +4 -4
  13. data/lib/pakyow/application/behavior/isolating.rb +71 -0
  14. data/lib/pakyow/application/behavior/operations.rb +49 -0
  15. data/lib/pakyow/application/behavior/pipeline.rb +60 -0
  16. data/lib/pakyow/application/behavior/plugins.rb +151 -0
  17. data/lib/pakyow/application/behavior/rescuing.rb +53 -0
  18. data/lib/pakyow/application/behavior/restarting.rb +72 -0
  19. data/lib/pakyow/application/behavior/sessions.rb +38 -0
  20. data/lib/pakyow/{behavior → application}/config.rb +1 -1
  21. data/lib/pakyow/{app → application}/connection.rb +4 -4
  22. data/lib/pakyow/{app → application}/connection/behavior/session.rb +1 -1
  23. data/lib/pakyow/{app → application}/connection/behavior/values.rb +1 -1
  24. data/lib/pakyow/{app → application}/connection/behavior/verifier.rb +1 -1
  25. data/lib/pakyow/{app → application}/connection/session/base.rb +1 -1
  26. data/lib/pakyow/{app → application}/connection/session/cookie.rb +2 -2
  27. data/lib/pakyow/application/helpers/app.rb +30 -0
  28. data/lib/pakyow/application/helpers/connection.rb +47 -0
  29. data/lib/pakyow/behavior/initializers.rb +3 -3
  30. data/lib/pakyow/behavior/input_parsing.rb +55 -0
  31. data/lib/pakyow/behavior/plugins.rb +3 -130
  32. data/lib/pakyow/behavior/restarting.rb +28 -46
  33. data/lib/pakyow/behavior/running.rb +127 -0
  34. data/lib/pakyow/behavior/silencing.rb +21 -0
  35. data/lib/pakyow/behavior/timezone.rb +19 -0
  36. data/lib/pakyow/behavior/verification.rb +1 -1
  37. data/lib/pakyow/behavior/verifier.rb +30 -0
  38. data/lib/pakyow/behavior/watching.rb +73 -0
  39. data/lib/pakyow/config.rb +168 -0
  40. data/lib/pakyow/environment.rb +31 -31
  41. data/lib/pakyow/helper.rb +9 -0
  42. data/lib/pakyow/loader.rb +7 -1
  43. data/lib/pakyow/plugin.rb +22 -21
  44. metadata +42 -42
  45. data/lib/pakyow/behavior/aspects.rb +0 -49
  46. data/lib/pakyow/behavior/endpoints.rb +0 -41
  47. data/lib/pakyow/behavior/frameworks.rb +0 -45
  48. data/lib/pakyow/behavior/helpers.rb +0 -108
  49. data/lib/pakyow/behavior/isolating.rb +0 -69
  50. data/lib/pakyow/behavior/operations.rb +0 -47
  51. data/lib/pakyow/behavior/pipeline.rb +0 -58
  52. data/lib/pakyow/behavior/rescuing.rb +0 -51
  53. data/lib/pakyow/behavior/sessions.rb +0 -36
  54. data/lib/pakyow/environment/behavior/config.rb +0 -172
  55. data/lib/pakyow/environment/behavior/input_parsing.rb +0 -57
  56. data/lib/pakyow/environment/behavior/plugins.rb +0 -23
  57. data/lib/pakyow/environment/behavior/restarting.rb +0 -54
  58. data/lib/pakyow/environment/behavior/running.rb +0 -129
  59. data/lib/pakyow/environment/behavior/silencing.rb +0 -23
  60. data/lib/pakyow/environment/behavior/timezone.rb +0 -21
  61. data/lib/pakyow/environment/behavior/verifier.rb +0 -32
  62. data/lib/pakyow/environment/behavior/watching.rb +0 -75
  63. data/lib/pakyow/helpers/app.rb +0 -28
  64. data/lib/pakyow/helpers/connection.rb +0 -45
@@ -15,23 +15,23 @@ require "pakyow/support/deep_freeze"
15
15
  require "pakyow/support/pipeline"
16
16
  require "pakyow/support/inflector"
17
17
 
18
- require "pakyow/environment/behavior/config"
19
- require "pakyow/environment/behavior/initializers"
20
- require "pakyow/environment/behavior/input_parsing"
21
- require "pakyow/environment/behavior/plugins"
22
- require "pakyow/environment/behavior/silencing"
23
- require "pakyow/environment/behavior/timezone"
24
- require "pakyow/environment/behavior/running"
25
- require "pakyow/environment/behavior/watching"
26
- require "pakyow/environment/behavior/restarting"
27
- require "pakyow/environment/behavior/verifier"
28
-
29
- require "pakyow/environment/actions/dispatch"
30
- require "pakyow/environment/actions/input_parser"
31
- require "pakyow/environment/actions/logger"
32
- require "pakyow/environment/actions/normalizer"
33
-
34
- require "pakyow/app"
18
+ require "pakyow/config"
19
+ require "pakyow/behavior/initializers"
20
+ require "pakyow/behavior/input_parsing"
21
+ require "pakyow/behavior/plugins"
22
+ require "pakyow/behavior/silencing"
23
+ require "pakyow/behavior/timezone"
24
+ require "pakyow/behavior/running"
25
+ require "pakyow/behavior/watching"
26
+ require "pakyow/behavior/restarting"
27
+ require "pakyow/behavior/verifier"
28
+
29
+ require "pakyow/actions/dispatch"
30
+ require "pakyow/actions/input_parser"
31
+ require "pakyow/actions/logger"
32
+ require "pakyow/actions/normalizer"
33
+
34
+ require "pakyow/application"
35
35
 
36
36
  require "pakyow/logger/destination"
37
37
  require "pakyow/logger/multiplexed"
@@ -41,7 +41,7 @@ require "pakyow/logger/thread_local"
41
41
  # mounted in the environment, each one handling requests at some path.
42
42
  #
43
43
  # Pakyow.configure do
44
- # mount Pakyow::App, at: "/"
44
+ # mount Pakyow::Application, at: "/"
45
45
  # end
46
46
  #
47
47
  # = Configuration
@@ -103,16 +103,16 @@ module Pakyow
103
103
 
104
104
  include Support::Configurable
105
105
 
106
- include Environment::Behavior::Config
107
- include Environment::Behavior::Initializers
108
- include Environment::Behavior::InputParsing
109
- include Environment::Behavior::Plugins
110
- include Environment::Behavior::Silencing
111
- include Environment::Behavior::Timezone
112
- include Environment::Behavior::Running
113
- include Environment::Behavior::Watching
114
- include Environment::Behavior::Restarting
115
- include Environment::Behavior::Verifier
106
+ include Config
107
+ include Behavior::Initializers
108
+ include Behavior::InputParsing
109
+ include Behavior::Plugins
110
+ include Behavior::Silencing
111
+ include Behavior::Timezone
112
+ include Behavior::Running
113
+ include Behavior::Watching
114
+ include Behavior::Restarting
115
+ include Behavior::Verifier
116
116
 
117
117
  include Support::Pipeline
118
118
  action Actions::Logger
@@ -150,7 +150,7 @@ module Pakyow
150
150
  # Mounts an app at a path.
151
151
  #
152
152
  # The app can be any rack endpoint, but must implement an
153
- # initializer like {App#initialize}.
153
+ # initializer like {Application#initialize}.
154
154
  #
155
155
  # @param app the rack endpoint to mount
156
156
  # @param at [String] where the endpoint should be mounted
@@ -276,7 +276,7 @@ module Pakyow
276
276
  else
277
277
  local_frameworks = (only || frameworks.keys) - Array.ensure(without)
278
278
 
279
- Pakyow::App.make(Support::ObjectName.namespace(app_name, "app")) {
279
+ Pakyow::Application.make(Support::ObjectName.namespace(app_name, "application")) {
280
280
  config.name = app_name
281
281
  include_frameworks(*local_frameworks)
282
282
  }.tap do |app|
@@ -335,7 +335,7 @@ module Pakyow
335
335
 
336
336
  # @api private
337
337
  def initialize_app_for_mount(mount)
338
- if mount[:app].ancestors.include?(Pakyow::App)
338
+ if mount[:app].ancestors.include?(Pakyow::Application)
339
339
  mount[:app].new(env, mount_path: mount[:path], &mount[:block])
340
340
  else
341
341
  mount[:app].new
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pakyow/support/makeable"
4
+
5
+ module Pakyow
6
+ module Helper
7
+ extend Support::Makeable
8
+ end
9
+ end
data/lib/pakyow/loader.rb CHANGED
@@ -25,7 +25,13 @@ module Pakyow
25
25
  code << "end\n"
26
26
  end
27
27
 
28
- eval(code, TOPLEVEL_BINDING, @path, 1 - target.__object_name.namespace.parts.count - 1)
28
+ object = eval(code, TOPLEVEL_BINDING, @path, 1 - target.__object_name.namespace.parts.count - 1)
29
+
30
+ if object.respond_to?(:__source_location)
31
+ object.__source_location = [@path, 1]
32
+ end
33
+
34
+ object
29
35
  end
30
36
  end
31
37
  end
data/lib/pakyow/plugin.rb CHANGED
@@ -6,17 +6,17 @@ require "pakyow/support/definable"
6
6
  require "pakyow/support/hookable"
7
7
  require "pakyow/support/pipeline"
8
8
 
9
- require "pakyow/behavior/aspects"
10
- require "pakyow/behavior/endpoints"
11
- require "pakyow/behavior/frameworks"
12
- require "pakyow/behavior/helpers"
13
- require "pakyow/behavior/isolating"
14
- require "pakyow/behavior/operations"
15
- require "pakyow/behavior/pipeline"
16
- require "pakyow/behavior/rescuing"
17
- require "pakyow/behavior/restarting"
18
-
19
- require "pakyow/app"
9
+ require "pakyow/application/behavior/aspects"
10
+ require "pakyow/application/behavior/endpoints"
11
+ require "pakyow/application/behavior/frameworks"
12
+ require "pakyow/application/behavior/helpers"
13
+ require "pakyow/application/behavior/isolating"
14
+ require "pakyow/application/behavior/operations"
15
+ require "pakyow/application/behavior/pipeline"
16
+ require "pakyow/application/behavior/rescuing"
17
+ require "pakyow/application/behavior/restarting"
18
+
19
+ require "pakyow/application"
20
20
  require "pakyow/endpoints"
21
21
 
22
22
  require "pakyow/plugin/helper_caller"
@@ -24,6 +24,7 @@ require "pakyow/plugin/helper_caller"
24
24
  module Pakyow
25
25
  # Base plugin class.
26
26
  #
27
+ # @api private
27
28
  class Plugin
28
29
  require "pakyow/plugin/state"
29
30
 
@@ -57,19 +58,19 @@ module Pakyow
57
58
 
58
59
  # Use the same events as app.
59
60
  #
60
- events(*App.events)
61
+ events(*Application.events)
61
62
 
62
63
  # Include behavior so that plugin behaves like an app.
63
64
  #
64
- include Behavior::Aspects
65
- include Behavior::Endpoints
66
- include Behavior::Frameworks
67
- include Behavior::Helpers
68
- include Behavior::Isolating
69
- include Behavior::Operations
70
- include Behavior::Pipeline
71
- include Behavior::Rescuing
72
- include Behavior::Restarting
65
+ include Application::Behavior::Aspects
66
+ include Application::Behavior::Endpoints
67
+ include Application::Behavior::Frameworks
68
+ include Application::Behavior::Helpers
69
+ include Application::Behavior::Isolating
70
+ include Application::Behavior::Operations
71
+ include Application::Behavior::Pipeline
72
+ include Application::Behavior::Rescuing
73
+ include Application::Behavior::Restarting
73
74
 
74
75
  attr_reader :parent
75
76
 
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pakyow-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
- - Bret Young
9
8
  autorequire:
10
9
  bindir: commands
11
10
  cert_chain: []
12
- date: 2019-07-15 00:00:00.000000000 Z
11
+ date: 2019-07-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: pakyow-support
@@ -17,14 +16,14 @@ dependencies:
17
16
  requirements:
18
17
  - - '='
19
18
  - !ruby/object:Gem::Version
20
- version: 1.0.0.rc5
19
+ version: 1.0.0
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - '='
26
25
  - !ruby/object:Gem::Version
27
- version: 1.0.0.rc5
26
+ version: 1.0.0
28
27
  - !ruby/object:Gem::Dependency
29
28
  name: async
30
29
  requirement: !ruby/object:Gem::Requirement
@@ -194,7 +193,7 @@ dependencies:
194
193
  - !ruby/object:Gem::Version
195
194
  version: '12.3'
196
195
  description: Core functionality for Pakyow
197
- email: bryan@metabahn.com
196
+ email: bryan@bryanp.org
198
197
  executables:
199
198
  - pakyow
200
199
  extensions: []
@@ -205,28 +204,44 @@ files:
205
204
  - README.md
206
205
  - commands/pakyow
207
206
  - lib/pakyow.rb
208
- - lib/pakyow/app.rb
209
- - lib/pakyow/app/connection.rb
210
- - lib/pakyow/app/connection/behavior/session.rb
211
- - lib/pakyow/app/connection/behavior/values.rb
212
- - lib/pakyow/app/connection/behavior/verifier.rb
213
- - lib/pakyow/app/connection/session/base.rb
214
- - lib/pakyow/app/connection/session/cookie.rb
215
- - lib/pakyow/behavior/aspects.rb
216
- - lib/pakyow/behavior/config.rb
217
- - lib/pakyow/behavior/endpoints.rb
218
- - lib/pakyow/behavior/frameworks.rb
219
- - lib/pakyow/behavior/helpers.rb
207
+ - lib/pakyow/actions/dispatch.rb
208
+ - lib/pakyow/actions/input_parser.rb
209
+ - lib/pakyow/actions/logger.rb
210
+ - lib/pakyow/actions/normalizer.rb
211
+ - lib/pakyow/application.rb
212
+ - lib/pakyow/application/behavior/aspects.rb
213
+ - lib/pakyow/application/behavior/endpoints.rb
214
+ - lib/pakyow/application/behavior/frameworks.rb
215
+ - lib/pakyow/application/behavior/helpers.rb
216
+ - lib/pakyow/application/behavior/initializers.rb
217
+ - lib/pakyow/application/behavior/isolating.rb
218
+ - lib/pakyow/application/behavior/operations.rb
219
+ - lib/pakyow/application/behavior/pipeline.rb
220
+ - lib/pakyow/application/behavior/plugins.rb
221
+ - lib/pakyow/application/behavior/rescuing.rb
222
+ - lib/pakyow/application/behavior/restarting.rb
223
+ - lib/pakyow/application/behavior/sessions.rb
224
+ - lib/pakyow/application/config.rb
225
+ - lib/pakyow/application/connection.rb
226
+ - lib/pakyow/application/connection/behavior/session.rb
227
+ - lib/pakyow/application/connection/behavior/values.rb
228
+ - lib/pakyow/application/connection/behavior/verifier.rb
229
+ - lib/pakyow/application/connection/session/base.rb
230
+ - lib/pakyow/application/connection/session/cookie.rb
231
+ - lib/pakyow/application/helpers/app.rb
232
+ - lib/pakyow/application/helpers/connection.rb
220
233
  - lib/pakyow/behavior/initializers.rb
221
- - lib/pakyow/behavior/isolating.rb
222
- - lib/pakyow/behavior/operations.rb
223
- - lib/pakyow/behavior/pipeline.rb
234
+ - lib/pakyow/behavior/input_parsing.rb
224
235
  - lib/pakyow/behavior/plugins.rb
225
- - lib/pakyow/behavior/rescuing.rb
226
236
  - lib/pakyow/behavior/restarting.rb
227
- - lib/pakyow/behavior/sessions.rb
237
+ - lib/pakyow/behavior/running.rb
238
+ - lib/pakyow/behavior/silencing.rb
239
+ - lib/pakyow/behavior/timezone.rb
228
240
  - lib/pakyow/behavior/verification.rb
241
+ - lib/pakyow/behavior/verifier.rb
242
+ - lib/pakyow/behavior/watching.rb
229
243
  - lib/pakyow/cli.rb
244
+ - lib/pakyow/config.rb
230
245
  - lib/pakyow/connection.rb
231
246
  - lib/pakyow/connection/multipart_input.rb
232
247
  - lib/pakyow/connection/multipart_parser.rb
@@ -235,20 +250,6 @@ files:
235
250
  - lib/pakyow/connection/statuses.rb
236
251
  - lib/pakyow/endpoints.rb
237
252
  - lib/pakyow/environment.rb
238
- - lib/pakyow/environment/actions/dispatch.rb
239
- - lib/pakyow/environment/actions/input_parser.rb
240
- - lib/pakyow/environment/actions/logger.rb
241
- - lib/pakyow/environment/actions/normalizer.rb
242
- - lib/pakyow/environment/behavior/config.rb
243
- - lib/pakyow/environment/behavior/initializers.rb
244
- - lib/pakyow/environment/behavior/input_parsing.rb
245
- - lib/pakyow/environment/behavior/plugins.rb
246
- - lib/pakyow/environment/behavior/restarting.rb
247
- - lib/pakyow/environment/behavior/running.rb
248
- - lib/pakyow/environment/behavior/silencing.rb
249
- - lib/pakyow/environment/behavior/timezone.rb
250
- - lib/pakyow/environment/behavior/verifier.rb
251
- - lib/pakyow/environment/behavior/watching.rb
252
253
  - lib/pakyow/error.rb
253
254
  - lib/pakyow/errors.rb
254
255
  - lib/pakyow/framework.rb
@@ -272,8 +273,7 @@ files:
272
273
  - lib/pakyow/generators/project/default/frontend/pages/keep
273
274
  - lib/pakyow/generators/project/default/public/favicon.ico
274
275
  - lib/pakyow/generators/project/default/public/robots.txt
275
- - lib/pakyow/helpers/app.rb
276
- - lib/pakyow/helpers/connection.rb
276
+ - lib/pakyow/helper.rb
277
277
  - lib/pakyow/info.rb
278
278
  - lib/pakyow/integrations/bootsnap.rb
279
279
  - lib/pakyow/integrations/bundler/require.rb
@@ -317,7 +317,7 @@ files:
317
317
  - lib/pakyow/validations/presence.rb
318
318
  - lib/pakyow/validator.rb
319
319
  - lib/pakyow/verifier.rb
320
- homepage: https://pakyow.org
320
+ homepage: https://pakyow.com
321
321
  licenses:
322
322
  - LGPL-3.0
323
323
  metadata: {}
@@ -332,9 +332,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
332
  version: 2.5.0
333
333
  required_rubygems_version: !ruby/object:Gem::Requirement
334
334
  requirements:
335
- - - ">"
335
+ - - ">="
336
336
  - !ruby/object:Gem::Version
337
- version: 1.3.1
337
+ version: '0'
338
338
  requirements: []
339
339
  rubygems_version: 3.0.3
340
340
  signing_key:
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pakyow/support/extension"
4
-
5
- require "pakyow/loader"
6
-
7
- module Pakyow
8
- module Behavior
9
- # Maintains known aspects and loads them.
10
- #
11
- module Aspects
12
- extend Support::Extension
13
-
14
- apply_extension do
15
- setting :aspects, []
16
-
17
- after "load" do
18
- config.aspects.each do |aspect|
19
- load_aspect(aspect)
20
- end
21
- end
22
- end
23
-
24
- class_methods do
25
- # Registers an app aspect by name.
26
- #
27
- def aspect(name)
28
- (config.aspects << name.to_sym).uniq!
29
- end
30
- end
31
-
32
- private
33
-
34
- def load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class)
35
- __load_aspect(aspect, path: path, target: target)
36
- end
37
-
38
- def __load_aspect(aspect, path: File.join(config.src, aspect.to_s), target: self.class)
39
- Dir.glob(File.join(path, "*.rb")) do |file_path|
40
- Loader.new(file_path).call(target)
41
- end
42
-
43
- Dir.glob(File.join(path, "*")).select { |sub_path| File.directory?(sub_path) }.each do |directory|
44
- __load_aspect(aspect, path: directory, target: target)
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pakyow/support/extension"
4
-
5
- require "pakyow/endpoints"
6
-
7
- module Pakyow
8
- module Behavior
9
- module Endpoints
10
- extend Support::Extension
11
-
12
- apply_extension do
13
- after "initialize" do
14
- load_endpoints
15
- end
16
- end
17
-
18
- prepend_methods do
19
- def initialize(*)
20
- @endpoints = ::Pakyow::Endpoints.new
21
-
22
- super
23
- end
24
- end
25
-
26
- # Instance of {Endpoints} for path building.
27
- #
28
- attr_reader :endpoints
29
-
30
- private
31
-
32
- def load_endpoints
33
- state.values.each do |state_object|
34
- state_object.instances.each do |state_instance|
35
- @endpoints.load(state_instance)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pakyow/support/extension"
4
-
5
- module Pakyow
6
- module Behavior
7
- # Manages {Framework} instances.
8
- #
9
- module Frameworks
10
- extend Support::Extension
11
-
12
- apply_extension do
13
- setting :loaded_frameworks, []
14
- end
15
-
16
- class_methods do
17
- # Includes one or more frameworks into the app class.
18
- #
19
- def include_frameworks(*frameworks)
20
- tap do
21
- frameworks.each do |framework_name|
22
- include_framework(framework_name)
23
- end
24
- end
25
- end
26
-
27
- # Includes a framework into the app class.
28
- #
29
- def include_framework(framework_name)
30
- framework_name = framework_name.to_sym
31
- Pakyow.frameworks.fetch(framework_name).new(self).boot
32
- (config.loaded_frameworks << framework_name).uniq!
33
- rescue KeyError => error
34
- raise UnknownFramework.build(error, framework: framework_name)
35
- end
36
-
37
- # Returns true if +framework+ is loaded.
38
- #
39
- def includes_framework?(framework_name)
40
- config.loaded_frameworks.include?(framework_name.to_sym)
41
- end
42
- end
43
- end
44
- end
45
- end