blueprints 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@ module Blueprints
7
7
  @name, parents = parse_name(name)
8
8
  depends_on(*parents)
9
9
 
10
- Namespace.root.add_child(self) if Namespace.root
10
+ Namespace.root.add_child(self) if Namespace.root
11
11
  end
12
12
 
13
13
  def depends_on(*scenarios)
@@ -15,7 +15,8 @@ module Blueprints
15
15
  end
16
16
 
17
17
  def build
18
- namespace.build_parent_plans
18
+ namespace = self
19
+ namespace.build_parent_plans while namespace = namespace.namespace
19
20
  build_parent_plans
20
21
  build_plan
21
22
  end
@@ -34,8 +35,7 @@ module Blueprints
34
35
  Namespace.root[p]
35
36
  end
36
37
 
37
- parent.build_parent_plans
38
- parent.build_plan
38
+ parent.build
39
39
  end
40
40
  end
41
41
 
@@ -14,9 +14,9 @@ module Blueprints
14
14
  if options[:undo] == :all
15
15
  Namespace.root.executed_plans.clear
16
16
  else
17
- undo = [options[:undo]].flatten.compact
17
+ undo = [options[:undo]].flatten.compact.collect {|bp| bp.to_s }
18
18
  unless (not_found = undo - Namespace.root.executed_plans.to_a).blank?
19
- raise(ArgumentError, "Scenario(s) #{not_found} not found")
19
+ raise(PlanNotFoundError, not_found)
20
20
  end
21
21
  Namespace.root.executed_plans -= undo
22
22
  end
@@ -11,8 +11,8 @@ module Blueprints
11
11
  @result = Namespace.root.context.module_eval(&@block)
12
12
  Namespace.root.add_variable(path, @result)
13
13
  end
14
- end unless Namespace.root.executed_plans.include?(@name)
15
- Namespace.root.executed_plans << @name
14
+ end unless Namespace.root.executed_plans.include?(path)
15
+ Namespace.root.executed_plans << path
16
16
  @result
17
17
  end
18
18
 
@@ -24,7 +24,7 @@ module Blueprints
24
24
 
25
25
  def prebuild(plans)
26
26
  @context = @global_context
27
- @global_scenarios = build(plans) if plans
27
+ @global_scenarios = build(*plans) if plans
28
28
  @global_executed_plans = @executed_plans
29
29
  @global_context = YAML.dump(@global_context)
30
30
  end
@@ -40,4 +40,4 @@ module Blueprints
40
40
 
41
41
  @@root = RootNamespace.new
42
42
  end
43
- end
43
+ end
@@ -47,7 +47,7 @@ namespace :pitted => :pine do
47
47
  Fruit.blueprint(:peach, :species => 'pitted peach', :tree => :@peach_tree).depends_on(:peach_tree)
48
48
  Fruit.blueprint(:acorn, :species => 'pitted acorn', :tree => :@oak).depends_on(:oak)
49
49
 
50
- namespace :red do
50
+ namespace :red => :orange do
51
51
  Fruit.blueprint(:apple, :species => 'pitted red apple')
52
52
  end
53
53
  end
@@ -123,7 +123,7 @@ describe Blueprints do
123
123
  it "should raise error when not executed scenarios passed to :undo option" do
124
124
  lambda {
125
125
  demolish :undo => :orange
126
- }.should raise_error(ArgumentError)
126
+ }.should raise_error(Blueprints::PlanNotFoundError, "Plan/namespace not found 'orange'")
127
127
  end
128
128
  end
129
129
 
@@ -242,7 +242,7 @@ describe Blueprints do
242
242
  build 'pitted.peach_tree'
243
243
  @pitted_peach_tree.name.should == 'pitted peach tree'
244
244
  end
245
-
245
+
246
246
  it "should allow adding dependencies from same namespace" do
247
247
  build 'pitted.peach'
248
248
  @pitted_peach.species.should == 'pitted peach'
@@ -257,7 +257,6 @@ describe Blueprints do
257
257
 
258
258
  it "should allow building whole namespace" do
259
259
  build :pitted
260
- p instance_variables
261
260
  @pitted_peach_tree.should_not be_nil
262
261
  @pitted_peach.should_not be_nil
263
262
  @pitted_acorn.should_not be_nil
@@ -265,12 +264,19 @@ describe Blueprints do
265
264
  @pitted.should =~ [@pitted_peach_tree, @pitted_peach, @pitted_acorn, [@pitted_red_apple]]
266
265
  end
267
266
 
268
- it "should load dependencies when building namespaced blueprint if namespace has any" do
269
- build 'pitted.peach'
270
- @the_pine.should_not be_nil
271
- end
272
-
273
267
  describe "with red namespace" do
268
+ it "should allow building blueprint with same name in different namespaces" do
269
+ build :apple, 'pitted.red.apple'
270
+ @apple.species.should == 'apple'
271
+ @pitted_red_apple.species.should == 'pitted red apple'
272
+ end
273
+
274
+ it "should load dependencies when building namespaced blueprint if parent namespaces have any" do
275
+ build 'pitted.red.apple'
276
+ @the_pine.should_not be_nil
277
+ @orange.should_not be_nil
278
+ end
279
+
274
280
  it "should allow building nested namespaces scenarios" do
275
281
  build 'pitted.red.apple'
276
282
  @pitted_red_apple.species.should == 'pitted red apple'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueprints
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrius Chamentauskas
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-18 00:00:00 +03:00
12
+ date: 2009-10-20 00:00:00 +03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -31,17 +31,17 @@ extensions: []
31
31
  extra_rdoc_files: []
32
32
 
33
33
  files:
34
+ - lib/blueprints.rb
34
35
  - lib/blueprints/file_context.rb
36
+ - lib/blueprints/ar_extensions.rb
37
+ - lib/blueprints/test_unit_extensions.rb
35
38
  - lib/blueprints/helper.rb
36
39
  - lib/blueprints/buildable.rb
37
- - lib/blueprints/root_namespace.rb
38
40
  - lib/blueprints/plan.rb
39
41
  - lib/blueprints/rspec_extensions.rb
40
- - lib/blueprints/ar_extensions.rb
41
- - lib/blueprints/test_unit_extensions.rb
42
+ - lib/blueprints/root_namespace.rb
42
43
  - lib/blueprints/namespace.rb
43
44
  - lib/blueprints/errors.rb
44
- - lib/blueprints.rb
45
45
  - README.rdoc
46
46
  - LICENSE
47
47
  has_rdoc: true