appfuel 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -8
- data/lib/appfuel/application/dispatcher.rb +4 -6
- data/lib/appfuel/application/root.rb +4 -1
- data/lib/appfuel/initialize.rb +26 -3
- data/lib/appfuel/version.rb +1 -1
- data/lib/appfuel.rb +12 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3c3ec8718b6e4fb9df7ef555193402e6f02c931
|
4
|
+
data.tar.gz: bb6b14d5574937ef8a7656ba3d9e8341cfd42a15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24449913484eabff5fffe4299dc89c6c7379901ab4176a19fc1b2fd11d4d12967c8b7be88bb5a4ed9060b10144fb1cd151d580aaaa4dc79182b40cedf7569133
|
7
|
+
data.tar.gz: 6464c583c605012bc135411526d9143dd852572f7a9debd372d2a75070022a09cd8270910fd683fe0ccbf54a0ab3d4904561af558d6ff10b493b71180f9ca87a
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file. (Pending ap
|
|
4
4
|
# [Unreleased]
|
5
5
|
|
6
6
|
# Releases
|
7
|
+
## [[0.2.7]](https://github.com/rsb/appfuel/releases/tag/0.2.6) 2017-06-07
|
8
|
+
### Changed
|
9
|
+
- Initializers are now stored in the app container and separate runlist
|
10
|
+
determines the order for which they run
|
11
|
+
|
12
|
+
## [[0.2.6]](https://github.com/rsb/appfuel/releases/tag/0.2.6) 2017-06-06
|
13
|
+
### Added
|
14
|
+
- dispatcher mixin
|
15
|
+
|
16
|
+
### Changed
|
17
|
+
- moved domain parsing to repository namespace
|
7
18
|
## [[0.2.5]](https://github.com/rsb/appfuel/releases/tag/0.2.5) 2017-05-23
|
8
19
|
### Fixed
|
9
20
|
- feature initializer has invalid reference `register?`
|
@@ -21,11 +32,3 @@ All notable changes to this project will be documented in this file. (Pending ap
|
|
21
32
|
|
22
33
|
### Added
|
23
34
|
- added exists interface to db mapper, will finalize the repo on next release
|
24
|
-
|
25
|
-
## [[0.2.6]](https://github.com/rsb/appfuel/releases/tag/0.2.6) 2017-06-6
|
26
|
-
|
27
|
-
### Added
|
28
|
-
- dispatcher mixin
|
29
|
-
|
30
|
-
### Changed
|
31
|
-
- moved domain parsing to repository namespace
|
@@ -6,9 +6,9 @@ module Appfuel
|
|
6
6
|
begin
|
7
7
|
container[:feature_initializer].call(request.feature, container)
|
8
8
|
action = container[:action_loader].call(request.namespace, container)
|
9
|
-
response = action.run(inputs)
|
9
|
+
response = action.run(request.inputs)
|
10
10
|
rescue => e
|
11
|
-
|
11
|
+
handle_error(e, container)
|
12
12
|
end
|
13
13
|
|
14
14
|
if response.failure?
|
@@ -18,10 +18,8 @@ module Appfuel
|
|
18
18
|
|
19
19
|
private
|
20
20
|
def handle_error(e, container)
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
|
21
|
+
p e.message
|
22
|
+
p e.backtrace
|
25
23
|
end
|
26
24
|
|
27
25
|
def default_error_handling(e, container)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Appfuel
|
2
2
|
module Application
|
3
3
|
module Root
|
4
|
-
|
4
|
+
include Dispatcher
|
5
5
|
|
6
6
|
# Initialize Appfuel by creating an application container for the
|
7
7
|
# app represented by the root module passed in. The app container is
|
@@ -24,6 +24,9 @@ module Appfuel
|
|
24
24
|
app_container.register(:app_name, app_name)
|
25
25
|
framework_container.register(app_name, app_container)
|
26
26
|
|
27
|
+
initialize = params.fetch(:initialize) { [] }
|
28
|
+
app_container.register('global.initializers.run', initialize)
|
29
|
+
|
27
30
|
if params.key?(:on_after_setup)
|
28
31
|
handle_after_setup(params[:on_after_setup], app_container)
|
29
32
|
end
|
data/lib/appfuel/initialize.rb
CHANGED
@@ -11,9 +11,32 @@ module Appfuel
|
|
11
11
|
# @param name [String] name of the initializer
|
12
12
|
# @param envs [String, Symbol, Array] A env,list of envs this can run in
|
13
13
|
# @param app_name [String] name of app for this initializer
|
14
|
-
def define(
|
15
|
-
|
16
|
-
|
14
|
+
def define(name, envs = [], app_name = nil, &block)
|
15
|
+
if !name.is_a?(String) && !name.include?('.')
|
16
|
+
fail "initializer name must be a string in the in the form of " +
|
17
|
+
"([feature|global].initializer_name)"
|
18
|
+
end
|
19
|
+
top, name = name.split('.')
|
20
|
+
top = "features.#{top}" unless top == 'global'
|
21
|
+
namespace = "#{top}.initializers.#{name}"
|
22
|
+
container = Appfuel.app_container(app_name)
|
23
|
+
initializer = Initializer.new(name, envs, &block)
|
24
|
+
container.register(namespace, initializer)
|
25
|
+
|
26
|
+
initializer
|
27
|
+
end
|
28
|
+
|
29
|
+
def runlist(name, list, app_name = nil)
|
30
|
+
namespace = "#{name}.initializers.run"
|
31
|
+
unless name == 'global'
|
32
|
+
namespace = "features.#{namespace}"
|
33
|
+
end
|
34
|
+
list = [list] unless list.is_a?(Array)
|
35
|
+
fail "run list must be [String|Symbol|Array]" unless list.is_a?(Array)
|
36
|
+
|
37
|
+
container = Appfuel.app_container(app_name)
|
38
|
+
container.register(namespace, list)
|
39
|
+
nil
|
17
40
|
end
|
18
41
|
|
19
42
|
# Populate configuration definition that is in the container and
|
data/lib/appfuel/version.rb
CHANGED
data/lib/appfuel.rb
CHANGED
@@ -140,11 +140,20 @@ module Appfuel
|
|
140
140
|
unless exclude.is_a?(Array)
|
141
141
|
fail ArgumentError, ":exclude must be an array"
|
142
142
|
end
|
143
|
+
|
143
144
|
exclude.map! {|item| item.to_s}
|
145
|
+
namespace = "#{key}.initializers"
|
146
|
+
runlist_key = "#{namespace}.run"
|
147
|
+
env = container['env']
|
148
|
+
config = container['config']
|
149
|
+
runlist = container[runlist_key]
|
150
|
+
unless runlist.respond_to?(:each)
|
151
|
+
fail "[initialize] runlist (#{runlist_key}) must implement :each"
|
152
|
+
end
|
144
153
|
|
145
|
-
|
146
|
-
|
147
|
-
|
154
|
+
runlist.each do |initializer_key|
|
155
|
+
initializer_key = "#{namespace}.#{initializer_key}"
|
156
|
+
init = container[initializer_key]
|
148
157
|
if !init.env_allowed?(env) || exclude.include?(init.name)
|
149
158
|
next
|
150
159
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appfuel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Scott-Buccleuch
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|