Sha256: caf0ade0f610bdfc334033d4632cc6684011fbb823adf153190fab91796ac24e

Contents?: true

Size: 1.51 KB

Versions: 20

Compression:

Stored size: 1.51 KB

Contents

require File.join(File.dirname(__FILE__), %w[.. .. spec_helper])

# define a custom subclass of the task to make sure classes are copied
class CustomTestTask < SC::Buildfile::Task  
  attr_accessor :test_property
end

describe SC::Buildfile, 'dup' do

  it "should clone tasks so that the new tasks belong to the new buildfile" do
    a = SC::Buildfile.define do
      task :foo 
    end
    
    b = a.dup
    
    a.lookup(:foo).application.should eql(a)
    b.lookup(:foo).application.should eql(b)
  end
  
  it "should clone tasks, including any custom subclasses" do
    a = SC::Buildfile.define do
      t = define_task CustomTestTask, :foo
      t.test_property = :bar
    end
    
    b = a.dup
    
    a.lookup(:foo).class.should eql(CustomTestTask)
    a.lookup(:foo).test_property.should eql(:bar)
    
    b.lookup(:foo).class.should eql(CustomTestTask)
    b.lookup(:foo).test_property.should eql(:bar)
  end
  
  it "should clone config" do
    a = SC::Buildfile.define do
      config :all, :foo => :foo
    end
    
    b = a.dup.define! do
      config :all, :foo => :bar
    end
    
    a.configs.all.all.foo.should eql(:foo)
    b.configs.all.all.foo.should eql(:bar)
  end
  
  it "should clone project_type" do
    a = SC::Buildfile.define
    a.project_type = :foo
    
    a.dup.project_type.should eql(:foo)
  end
  
  it "should NOT clone the project? status (must be set per-instance)" do
    a = SC::Buildfile.define
    a.project!
    a.project?.should be_true
    
    a.dup.project?.should be_false
  end
  
  
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
sproutit-sproutcore-1.0.0.20090407205609 spec/lib/buildfile/dup_spec.rb
sproutit-sproutcore-1.0.0.20090408130025 spec/lib/buildfile/dup_spec.rb
sproutit-sproutcore-1.0.0.20090416161445 spec/lib/buildfile/dup_spec.rb
sproutit-sproutcore-1.0.20090721145236 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1046 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1043 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1042 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1037 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1035 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1031 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1030 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1029 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1027 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1028 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1026 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1025 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1024 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1009 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1008 spec/lib/buildfile/dup_spec.rb
sproutcore-1.0.1003 spec/lib/buildfile/dup_spec.rb