pakyow-core 1.0.0.rc5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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