phenomenal_rails 1.2.4 → 1.2.5
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.
- data/lib/phenomenal_rails/engine.rb +5 -5
- data/lib/phenomenal_rails/middleware.rb +12 -4
- data/lib/phenomenal_rails/version.rb +1 -1
- data/lib/phenomenal_rails.rb +2 -1
- data/spec/dummy/app/views/pages/home.html.haml +7 -1
- data/spec/dummy/app_phenomenal/persistent_feature/controllers/application_controller.rb +1 -1
- data/spec/dummy/app_phenomenal/persistent_feature/persistent_feature.rb +2 -0
- data/spec/dummy/app_phenomenal/test_feature/test_feature.rb +7 -1
- data/spec/dummy/log/development.log +2222 -54
- data/spec/dummy/log/production.log +53 -21
- metadata +75 -75
@@ -1,20 +1,20 @@
|
|
1
1
|
class PhenomenalRails::Engine < Rails::Engine
|
2
2
|
isolate_namespace PhenomenalRails
|
3
3
|
config.app_middleware.use(PhenomenalRails::Middleware)
|
4
|
-
|
4
|
+
|
5
5
|
config.before_configuration do
|
6
6
|
Rails.configuration.autoload_paths += PhenomenalRails::Loader.autoload_paths(File.expand_path(PhenomenalRails::PATH,Rails.root))
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
config.to_prepare do
|
10
10
|
PhenomenalRails::Loader.prepare(true)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
config.after_initialize do
|
14
14
|
ActionController::Base.prepend_view_path(PhenomenalRails::Resolver.instance)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
ActionDispatch::Callbacks.before do |*args|
|
18
18
|
PhenomenalRails::Loader.prepare
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -4,20 +4,21 @@ class PhenomenalRails::Middleware
|
|
4
4
|
@activation_conditions=Array.new
|
5
5
|
Phenomenal::Feature.middleware=self
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
def add_condition(feature,&block)
|
9
9
|
@activation_conditions.push([feature,block])
|
10
|
+
sort_activation_conditions
|
10
11
|
end
|
11
|
-
|
12
|
+
|
12
13
|
def clear_activition_conditions
|
13
14
|
@activation_conditions.clear
|
14
15
|
end
|
15
|
-
|
16
|
+
|
16
17
|
def call(env)
|
17
18
|
before_call(env)
|
18
19
|
@app.call(env)
|
19
20
|
end
|
20
|
-
|
21
|
+
|
21
22
|
def before_call(env)
|
22
23
|
@activation_conditions.each do |feature_block|
|
23
24
|
feature,block = feature_block
|
@@ -26,4 +27,11 @@ class PhenomenalRails::Middleware
|
|
26
27
|
end
|
27
28
|
end
|
28
29
|
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def sort_activation_conditions
|
33
|
+
@activation_conditions.sort! do |a,b|
|
34
|
+
Phenomenal::Manager.instance.conflict_policy(a[0],b[0])
|
35
|
+
end
|
36
|
+
end
|
29
37
|
end
|
data/lib/phenomenal_rails.rb
CHANGED
@@ -11,9 +11,10 @@ require "phenomenal_rails/path_set"
|
|
11
11
|
|
12
12
|
# Set default feature as persistent
|
13
13
|
phen_default_feature.persistent=true
|
14
|
+
phen_change_conflict_policy { |a,b| priority_conflict_policy(a,b) }
|
14
15
|
|
15
16
|
|
16
|
-
module PhenomenalRails
|
17
|
+
module PhenomenalRails
|
17
18
|
# Phenomenal application folder
|
18
19
|
PATH = "app_phenomenal"
|
19
20
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
%h1
|
1
|
+
%h1
|
2
2
|
HOME
|
3
3
|
=@test_title
|
4
4
|
%p
|
@@ -28,5 +28,11 @@
|
|
28
28
|
=render :partial=>"shared/partial4"
|
29
29
|
= ActionController::Base.view_paths.paths
|
30
30
|
%br
|
31
|
+
%p
|
32
|
+
Activation conditions stack
|
33
|
+
%br
|
34
|
+
=Phenomenal::Feature.class_variable_get(:@@middleware).instance_variable_get(:@activation_conditions)
|
31
35
|
%br
|
36
|
+
%br
|
37
|
+
|
32
38
|
=Rails.env
|