phenomenal 0.9.0 → 0.11.11.24.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/LICENSE +1 -1
  2. data/README +4 -3
  3. data/Rakefile +0 -3
  4. data/demo.rb +24 -0
  5. data/demo_age.rb +89 -0
  6. data/demo_dsl.rb +28 -0
  7. data/lib/phenomenal.rb +2 -15
  8. data/lib/phenomenal/adaptation.rb +12 -22
  9. data/lib/phenomenal/context.rb +134 -127
  10. data/lib/phenomenal/dsl.rb +14 -41
  11. data/lib/phenomenal/logger.rb +1 -0
  12. data/lib/phenomenal/manager.rb +35 -117
  13. data/phenomenal.gemspec +15 -0
  14. data/{spec → test}/test_classes.rb +0 -3
  15. data/test/test_cop_adaptation.rb +168 -0
  16. data/test/test_cop_composition.rb +84 -0
  17. data/test/test_cop_conflictpolicy.rb +177 -0
  18. data/test/test_cop_infrastructure.rb +129 -0
  19. data/test_declaration.rb +18 -0
  20. metadata +29 -70
  21. data/lib/phenomenal/feature.rb +0 -8
  22. data/lib/phenomenal/relationships/context_relationships.rb +0 -22
  23. data/lib/phenomenal/relationships/dsl.rb +0 -18
  24. data/lib/phenomenal/relationships/feature_relationships.rb +0 -42
  25. data/lib/phenomenal/relationships/implication.rb +0 -35
  26. data/lib/phenomenal/relationships/relationship.rb +0 -42
  27. data/lib/phenomenal/relationships/relationships_manager.rb +0 -63
  28. data/lib/phenomenal/relationships/relationships_store.rb +0 -73
  29. data/lib/phenomenal/relationships/requirement.rb +0 -26
  30. data/lib/phenomenal/relationships/suggestion.rb +0 -41
  31. data/lib/phenomenal/version.rb +0 -3
  32. data/spec/adaptation_spec.rb +0 -64
  33. data/spec/behavior/adaptation_spec.rb +0 -5
  34. data/spec/behavior/combined_contexts_spec.rb +0 -5
  35. data/spec/behavior/composition_spec.rb +0 -5
  36. data/spec/behavior/conflict_policy_spec.rb +0 -5
  37. data/spec/behavior/open_context.rb +0 -5
  38. data/spec/behavior/relationships_spec.rb +0 -249
  39. data/spec/context_spec.rb +0 -268
  40. data/spec/dsl_spec.rb +0 -181
  41. data/spec/feature_spec.rb +0 -5
  42. data/spec/manager_spec.rb +0 -84
  43. data/spec/proc_spec.rb +0 -20
  44. data/spec/relationships/context_relationships_spec.rb +0 -13
  45. data/spec/relationships/dsl_spec.rb +0 -13
  46. data/spec/relationships/feature_relationships_spec.rb +0 -13
  47. data/spec/relationships/relationship_spec.rb +0 -31
  48. data/spec/relationships/relationships_manager_spec.rb +0 -15
  49. data/spec/relationships/relationships_store_spec.rb +0 -19
  50. data/spec/spec_helper.rb +0 -18
@@ -1,181 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::DSL do
4
-
5
- describe "#phen_define_context" do
6
- pending "TODO"
7
- end
8
-
9
- describe "#phen_context" do
10
- it "should exist in Kernel" do
11
- Kernel.should respond_to :phen_context
12
- end
13
-
14
- pending "TODO"
15
-
16
- describe "#context" do
17
- it "should exist in Kernel" do
18
- Kernel.should respond_to :context
19
- end
20
-
21
- it "should be an alias of phen_context" do
22
- Kernel.method(:phen_context).should == Kernel.method(:context)
23
- end
24
- end
25
- end
26
-
27
- describe "#phen_feature" do
28
- it "should exist in Kernel" do
29
- Kernel.should respond_to :phen_feature
30
- end
31
-
32
- pending "TODO"
33
-
34
- describe "#feature" do
35
- it "should exist in Kernel" do
36
- Kernel.should respond_to :feature
37
- end
38
-
39
- it "should be an alias of phen_context" do
40
- Kernel.method(:phen_feature).should == Kernel.method(:feature)
41
- end
42
- end
43
- end
44
-
45
- describe "#phen_forget_context" do
46
- it "should exist in Kernel" do
47
- Kernel.should respond_to :phen_forget_context
48
- end
49
-
50
- pending "TODO"
51
- end
52
- describe "#phen_add_adaptation" do
53
- it "should exist in Kernel" do
54
- Kernel.should respond_to :phen_add_adaptation
55
- end
56
-
57
- pending "TODO"
58
- end
59
-
60
- describe "#phen_add_class_adaptation" do
61
- it "should exist in Kernel" do
62
- Kernel.should respond_to :phen_add_class_adaptation
63
- end
64
-
65
- pending "TODO"
66
- end
67
-
68
- describe "#phen_remove_adaptation" do
69
- it "should exist in Kernel" do
70
- Kernel.should respond_to :phen_remove_adaptation
71
- end
72
-
73
- pending "TODO"
74
- end
75
-
76
- describe "#phen_remove_class_adaptation" do
77
- it "should exist in Kernel" do
78
- Kernel.should respond_to :phen_remove_class_adaptation
79
- end
80
-
81
- pending "TODO"
82
- end
83
-
84
- describe "#phen_activate_context" do
85
- it "should exist in Kernel" do
86
- Kernel.should respond_to :phen_activate_context
87
- end
88
-
89
- pending "TODO"
90
-
91
- describe "#activate_context" do
92
- it "should exist in Kernel" do
93
- Kernel.should respond_to :activate_context
94
- end
95
-
96
- it "should be an alias of phen_context" do
97
- Kernel.method(:phen_activate_context).should == Kernel.method(:activate_context)
98
- end
99
- end
100
- end
101
-
102
- describe "#phen_deactivate_context" do
103
- it "should exist in Kernel" do
104
- Kernel.should respond_to :phen_deactivate_context
105
- end
106
-
107
- pending "TODO"
108
-
109
- describe "#deactivate_context" do
110
- it "should exist in Kernel" do
111
- Kernel.should respond_to :deactivate_context
112
- end
113
-
114
- it "should be an alias of phen_context" do
115
- Kernel.method(:phen_deactivate_context).should == Kernel.method(:deactivate_context)
116
- end
117
- end
118
- end
119
-
120
- describe "#phen_context_active?" do
121
- it "should exist in Kernel" do
122
- Kernel.should respond_to :phen_context_active?
123
- end
124
-
125
- pending "TODO"
126
- end
127
-
128
- describe "#phen_context_information" do
129
- it "should exist in Kernel" do
130
- Kernel.should respond_to :phen_context_information
131
- end
132
-
133
- pending "TODO"
134
- end
135
-
136
- describe "#phen_default_context" do
137
- it "should exist in Kernel" do
138
- Kernel.should respond_to :phen_default_context
139
- end
140
-
141
- pending "TODO"
142
- end
143
-
144
- describe "#phen_defined_contexts" do
145
- it "should exist in Kernel" do
146
- Kernel.should respond_to :phen_defined_contexts
147
- end
148
-
149
- pending "TODO"
150
- end
151
-
152
- describe "#phen_proceed" do
153
- it "should exist in Kernel" do
154
- Kernel.should respond_to :phen_proceed
155
- end
156
-
157
- pending "TODO"
158
-
159
- describe "#proceed" do
160
- it "should exist in Kernel" do
161
- Kernel.should respond_to :proceed
162
- end
163
-
164
- it "should be an alias of phen_context" do
165
- Kernel.method(:phen_proceed).should == Kernel.method(:proceed)
166
- end
167
- end
168
- end
169
-
170
- describe "#phen_change_conflict_policy" do
171
- it "should exist in Kernel" do
172
- Kernel.should respond_to :phen_change_conflict_policy
173
- end
174
-
175
- pending "TODO"
176
- end
177
-
178
- describe ".phen_alias" do
179
- pending "TODO"
180
- end
181
- end
@@ -1,5 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::Feature do
4
- #Everything in FeatureRelationships until now
5
- end
@@ -1,84 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::Manager do
4
- before :each do
5
- @context = Phenomenal::Context.new(:test)
6
- @context2 = Phenomenal::Context.new(:test2)
7
- @combined = context :test,:test2
8
- @manager = Phenomenal::Manager.instance
9
- end
10
-
11
- after :each do
12
- force_forget_context(@context)
13
- force_forget_context(@context2)
14
- end
15
-
16
- describe "#register_context" do
17
- pending "TODO"
18
- end
19
-
20
- describe "#unregister_context" do
21
- pending "TODO"
22
- end
23
-
24
- describe "#register_adaptation" do
25
- pending "unregister_adaptation"
26
- end
27
-
28
- describe "#activate_context" do
29
- pending "TODO"
30
- end
31
-
32
- describe "#deactivate_context" do
33
- pending "TODO"
34
- end
35
-
36
- describe "#proceed" do
37
- pending "TODO"
38
- end
39
-
40
- describe "#change_conflict_policy" do
41
- pending "TODO"
42
- end
43
-
44
- describe "#find_context" do
45
- it "should return the simple context with the name passed as parameter" do
46
- @manager.find_context(:test).should==@context
47
- end
48
-
49
- it "should raise an error if the context wasn't found" do
50
- expect {@manager.find_context(:unknown)}.to raise_error Phenomenal::Error
51
- end
52
-
53
- it "should return the context immediatly if the argument is a context an is known by the manager" do
54
- @manager.find_context(@context).should==@context
55
- end
56
-
57
- it "should return the combined context matching the list of names passed as parameters" do
58
- @manager.find_context(:test,:test2).should==@combined
59
- end
60
- end
61
-
62
- describe "#context_defined?" do
63
- it "should return the context if the context exist" do
64
- @manager.context_defined?(:test).should==@context
65
- end
66
-
67
- it "should return nil if the context doesn't exist" do
68
- context = Phenomenal::Context.new(:context)
69
- @manager.context_defined?(:context).should==context
70
- context.forget
71
- @manager.context_defined?(:context).should be_nil
72
- @manager.context_defined?(:unknown).should be_nil
73
- end
74
-
75
- it "should work with context references" do
76
- @manager.context_defined?(@context).should==@context
77
- end
78
-
79
- it "should work with combined contexts" do
80
- @manager.context_defined?(:test,:test2).should==@combined
81
- @manager.context_defined?(:test,:unknown).should be_nil
82
- end
83
- end
84
- end
@@ -1,20 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Proc do
4
- describe "#phenomenal_bind" do
5
- it "should be possible to bind proc as instance methods" do
6
- p = Proc.new{"Proc"}
7
- p.should respond_to :phenomenal_bind
8
- o = BasicObject.new
9
- p.phenomenal_bind(o).call.should == "Proc"
10
- end
11
- end
12
-
13
- describe "#phenomenal_class_bind" do
14
- it "should be possible to bind proc as class methods" do
15
- p = Proc.new{"Proc"}
16
- p.should respond_to :phenomenal_class_bind
17
- p.phenomenal_bind(BasicObject).call.should == "Proc"
18
- end
19
- end
20
- end
@@ -1,13 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::ContextRelationships do
4
- describe "#requires" do
5
- pending "TODO"
6
- end
7
- describe "#implies" do
8
- pending "TODO"
9
- end
10
- describe "#suggests" do
11
- pending "TODO"
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::DSL do
4
- describe "#requirements_for" do
5
- pending "TODO"
6
- end
7
- describe "#implications_for" do
8
- pending "TODO"
9
- end
10
- describe "#suggestions_for" do
11
- pending "TODO"
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::FeatureRelationships do
4
- describe "#requirements_for" do
5
- pending "TODO"
6
- end
7
- describe "#implications_for" do
8
- pending "TODO"
9
- end
10
- describe "#suggestions_for" do
11
- pending "TODO"
12
- end
13
- end
@@ -1,31 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::Relationship do
4
- describe "#==" do
5
- it "should be true for two relationships with the same source and target" do
6
- a = Phenomenal::Relationship.new(:source,:target,nil)
7
- b = Phenomenal::Relationship.new(:source,:target,nil)
8
- a.should == b
9
- end
10
-
11
- it "should be false for relationships concerning different contexts" do
12
- a = Phenomenal::Relationship.new(:source,:target,nil)
13
- c = Phenomenal::Relationship.new(:source,:other_target,nil)
14
- a.should_not == c
15
- d = Phenomenal::Relationship.new(:other_source,:other_target,nil)
16
- a.should_not == d
17
- e = Phenomenal::Relationship.new(:other_source,:target,nil)
18
- a.should_not == e
19
- end
20
-
21
- it "should be false for relationships of different types" do
22
- a = Phenomenal::Implication.new(:source,:target,nil)
23
- b = Phenomenal::Requirement.new(:source,:target,nil)
24
- a.should_not == b
25
- end
26
- end
27
-
28
- describe "#refresh" do
29
- pending "TODO"
30
- end
31
- end
@@ -1,15 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::RelationshipsManager do
4
- describe "#activate_relationships" do
5
- pending "TODO"
6
- end
7
-
8
- describe "#deactivate_relationships" do
9
- pending "TODO"
10
- end
11
-
12
- describe "#update_relationships_references" do
13
- pending "TODO"
14
- end
15
- end
@@ -1,19 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Phenomenal::RelationshipsStore do
4
- describe "#add" do
5
- pending "TODO"
6
- end
7
-
8
- describe "#remove" do
9
- pending "TODO"
10
- end
11
-
12
- describe "#update_references" do
13
- pending "TODO"
14
- end
15
-
16
- describe "#get_for" do
17
- pending "TODO"
18
- end
19
- end
@@ -1,18 +0,0 @@
1
- require 'rspec'
2
- require "phenomenal"
3
-
4
- RSpec.configure do |config|
5
- config.color_enabled = true
6
- config.formatter = 'progress'
7
- end
8
-
9
- def force_forget_context(context)
10
- while phen_context_active?(context) do
11
- phen_deactivate_context(context)
12
- end
13
- phen_forget_context(context)
14
- end
15
-
16
- def define_test_classes
17
- load "test_classes.rb"
18
- end