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