justsee-sprinkle 0.2.4

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.
Files changed (100) hide show
  1. data/CREDITS +22 -0
  2. data/History.txt +4 -0
  3. data/MIT-LICENSE +20 -0
  4. data/Manifest.txt +100 -0
  5. data/README.txt +241 -0
  6. data/Rakefile +4 -0
  7. data/bin/sprinkle +86 -0
  8. data/config/hoe.rb +70 -0
  9. data/config/requirements.rb +17 -0
  10. data/examples/packages/build_essential.rb +9 -0
  11. data/examples/packages/databases/mysql.rb +13 -0
  12. data/examples/packages/databases/sqlite3.rb +16 -0
  13. data/examples/packages/phusion.rb +55 -0
  14. data/examples/packages/ruby/rails.rb +9 -0
  15. data/examples/packages/ruby/ruby.rb +17 -0
  16. data/examples/packages/ruby/rubygems.rb +17 -0
  17. data/examples/packages/scm/git.rb +11 -0
  18. data/examples/packages/scm/subversion.rb +4 -0
  19. data/examples/packages/servers/apache.rb +15 -0
  20. data/examples/rails/README +15 -0
  21. data/examples/rails/deploy.rb +2 -0
  22. data/examples/rails/packages/database.rb +9 -0
  23. data/examples/rails/packages/essential.rb +9 -0
  24. data/examples/rails/packages/rails.rb +28 -0
  25. data/examples/rails/packages/scm.rb +11 -0
  26. data/examples/rails/packages/search.rb +11 -0
  27. data/examples/rails/packages/server.rb +28 -0
  28. data/examples/rails/rails.rb +73 -0
  29. data/examples/sprinkle/sprinkle.rb +38 -0
  30. data/lib/sprinkle.rb +32 -0
  31. data/lib/sprinkle/actors/actors.rb +17 -0
  32. data/lib/sprinkle/actors/capistrano.rb +124 -0
  33. data/lib/sprinkle/actors/local.rb +30 -0
  34. data/lib/sprinkle/actors/ssh.rb +81 -0
  35. data/lib/sprinkle/actors/vlad.rb +65 -0
  36. data/lib/sprinkle/configurable.rb +31 -0
  37. data/lib/sprinkle/deployment.rb +73 -0
  38. data/lib/sprinkle/extensions/arbitrary_options.rb +10 -0
  39. data/lib/sprinkle/extensions/array.rb +5 -0
  40. data/lib/sprinkle/extensions/blank_slate.rb +5 -0
  41. data/lib/sprinkle/extensions/dsl_accessor.rb +15 -0
  42. data/lib/sprinkle/extensions/string.rb +10 -0
  43. data/lib/sprinkle/extensions/symbol.rb +7 -0
  44. data/lib/sprinkle/installers/apt.rb +52 -0
  45. data/lib/sprinkle/installers/bsd_port.rb +33 -0
  46. data/lib/sprinkle/installers/deb.rb +38 -0
  47. data/lib/sprinkle/installers/freebsd_pkg.rb +37 -0
  48. data/lib/sprinkle/installers/gem.rb +63 -0
  49. data/lib/sprinkle/installers/installer.rb +120 -0
  50. data/lib/sprinkle/installers/mac_port.rb +38 -0
  51. data/lib/sprinkle/installers/openbsd_pkg.rb +47 -0
  52. data/lib/sprinkle/installers/opensolaris_pkg.rb +43 -0
  53. data/lib/sprinkle/installers/push_text.rb +45 -0
  54. data/lib/sprinkle/installers/rake.rb +37 -0
  55. data/lib/sprinkle/installers/rpm.rb +37 -0
  56. data/lib/sprinkle/installers/source.rb +179 -0
  57. data/lib/sprinkle/installers/yum.rb +37 -0
  58. data/lib/sprinkle/package.rb +275 -0
  59. data/lib/sprinkle/policy.rb +125 -0
  60. data/lib/sprinkle/script.rb +23 -0
  61. data/lib/sprinkle/verifiers/directory.rb +16 -0
  62. data/lib/sprinkle/verifiers/executable.rb +36 -0
  63. data/lib/sprinkle/verifiers/file.rb +26 -0
  64. data/lib/sprinkle/verifiers/process.rb +21 -0
  65. data/lib/sprinkle/verifiers/ruby.rb +25 -0
  66. data/lib/sprinkle/verifiers/symlink.rb +30 -0
  67. data/lib/sprinkle/verify.rb +114 -0
  68. data/lib/sprinkle/version.rb +9 -0
  69. data/script/destroy +14 -0
  70. data/script/generate +14 -0
  71. data/spec/spec.opts +1 -0
  72. data/spec/spec_helper.rb +17 -0
  73. data/spec/sprinkle/actors/capistrano_spec.rb +170 -0
  74. data/spec/sprinkle/actors/local_spec.rb +29 -0
  75. data/spec/sprinkle/configurable_spec.rb +46 -0
  76. data/spec/sprinkle/deployment_spec.rb +80 -0
  77. data/spec/sprinkle/extensions/array_spec.rb +19 -0
  78. data/spec/sprinkle/extensions/string_spec.rb +21 -0
  79. data/spec/sprinkle/installers/apt_spec.rb +70 -0
  80. data/spec/sprinkle/installers/bsd_port_spec.rb +42 -0
  81. data/spec/sprinkle/installers/freebsd_pkg_spec.rb +49 -0
  82. data/spec/sprinkle/installers/gem_spec.rb +91 -0
  83. data/spec/sprinkle/installers/installer_spec.rb +151 -0
  84. data/spec/sprinkle/installers/mac_port_spec.rb +42 -0
  85. data/spec/sprinkle/installers/openbsd_pkg_spec.rb +49 -0
  86. data/spec/sprinkle/installers/opensolaris_pkg_spec.rb +49 -0
  87. data/spec/sprinkle/installers/push_text_spec.rb +55 -0
  88. data/spec/sprinkle/installers/rake_spec.rb +29 -0
  89. data/spec/sprinkle/installers/rpm_spec.rb +50 -0
  90. data/spec/sprinkle/installers/source_spec.rb +331 -0
  91. data/spec/sprinkle/installers/yum_spec.rb +49 -0
  92. data/spec/sprinkle/policy_spec.rb +126 -0
  93. data/spec/sprinkle/script_spec.rb +51 -0
  94. data/spec/sprinkle/sprinkle_spec.rb +25 -0
  95. data/spec/sprinkle/verify_spec.rb +167 -0
  96. data/sprinkle.gemspec +73 -0
  97. data/tasks/deployment.rake +34 -0
  98. data/tasks/environment.rake +7 -0
  99. data/tasks/rspec.rake +21 -0
  100. metadata +195 -0
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe Sprinkle::Installers::Yum do
4
+
5
+ before do
6
+ @package = mock(Sprinkle::Package, :name => 'package')
7
+ end
8
+
9
+ def create_rpm(rpms, &block)
10
+ Sprinkle::Installers::Yum.new(@package, rpms, &block)
11
+ end
12
+
13
+ describe 'when created' do
14
+
15
+ it 'should accept a single package to install' do
16
+ @installer = create_rpm 'ruby'
17
+ @installer.packages.should == [ 'ruby' ]
18
+ end
19
+
20
+ it 'should accept an array of packages to install' do
21
+ @installer = create_rpm %w( gcc gdb g++ )
22
+ @installer.packages.should == ['gcc', 'gdb', 'g++']
23
+ end
24
+
25
+ end
26
+
27
+ describe 'during installation' do
28
+
29
+ before do
30
+ @installer = create_rpm 'ruby' do
31
+ pre :install, 'op1'
32
+ post :install, 'op2'
33
+ end
34
+ @install_commands = @installer.send :install_commands
35
+ end
36
+
37
+ it 'should invoke the rpm installer for all specified packages' do
38
+ @install_commands.should =~ /yum install ruby -y/
39
+ end
40
+
41
+ it 'should automatically insert pre/post commands for the specified package' do
42
+ @installer.send(:install_sequence).should == [ 'op1', 'yum install ruby -y', 'op2' ]
43
+ end
44
+
45
+ it 'should install a specific version if defined'
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,126 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Policy do
4
+ include Sprinkle::Policy
5
+
6
+ before do
7
+ @name = 'a policy'
8
+ end
9
+
10
+ describe 'when created' do
11
+
12
+ it 'should be invalid without a name' do
13
+ lambda { policy nil }.should raise_error
14
+ end
15
+
16
+ it 'should be invalid without role definitions' do
17
+ lambda { policy @name do; end }.should raise_error
18
+ lambda { policy @name, :roles => :app do; end }.should_not raise_error
19
+ end
20
+
21
+ it 'should optionally accept package dependencies' do
22
+ p = policy @name, :roles => :app do; end
23
+ p.should respond_to(:requires)
24
+ p.requires :appserver
25
+ p.packages.should == [ :appserver ]
26
+ end
27
+
28
+ it 'should optionally accept package dependencies with versions' do
29
+ p = policy @name, :roles => :app do; end
30
+ p.requires :appserver, :version => 2
31
+ p.packages.should == [ :appserver ]
32
+ pending 'requires version checking implementation'
33
+ end
34
+
35
+ it 'should add itself to the global policy list' do
36
+ sz = Sprinkle::Policy::POLICIES.size
37
+ p = policy @name, :roles => :app do; end
38
+ Sprinkle::Policy::POLICIES.size.should == sz + 1
39
+ Sprinkle::Policy::POLICIES.last.should == p
40
+ end
41
+
42
+ end
43
+
44
+ describe 'with packages' do
45
+ include Sprinkle::Package
46
+
47
+ before do
48
+ @deployment = mock(Sprinkle::Deployment)
49
+ Sprinkle::Package::PACKAGES.clear # reset full package list before each spec is run
50
+
51
+ @a = package :a do; requires :b; requires :c; end
52
+ @b = package :b, :provides => :xyz do; end
53
+ @c = package :c, :provides => :abc do; end
54
+ @d = package :d, :provides => :abc do; end
55
+
56
+ @policy = policy :test, :roles => :app do; requires :a; end
57
+ $terminal.stub!(:choose).and_return(:c) # stub out highline asking questions
58
+ end
59
+
60
+ describe 'when applying' do
61
+ include Sprinkle::Package
62
+
63
+ it 'should determine the packages to install via the hierarchy dependency tree of each package in the policy' do
64
+ @a.should_receive(:process).and_return
65
+ @b.should_receive(:process).and_return
66
+ @c.should_receive(:process).and_return
67
+ @d.should_not_receive(:process)
68
+ end
69
+
70
+ it 'should normalize (ie remove duplicates from) the installation order of all packages including dependencies' do
71
+ @e = package :e do; requires :b; end
72
+ @policy.requires :e
73
+
74
+ @a.should_receive(:process).once.and_return
75
+ @b.should_receive(:process).once.and_return
76
+ @c.should_receive(:process).once.and_return
77
+ @d.should_not_receive(:process)
78
+ @e.should_receive(:process).once.and_return
79
+ end
80
+ end
81
+
82
+ describe 'containing package dependencies with versions' do
83
+
84
+ it 'should be invalid if the specified package does not exist'
85
+ it 'should ignore any packages of the same name that have other versions'
86
+ it 'should select the correct package version when applying'
87
+
88
+ end
89
+
90
+ describe 'containing virtual packages' do
91
+
92
+ it 'should automatically select a concrete package implementation for a virtual one when there exists only one possible selection' do
93
+ @policy = policy :virtual, :roles => :app do; requires :xyz; end
94
+ Sprinkle::Package::PACKAGES[:xyz].should == [ @b ]
95
+ end
96
+
97
+ it 'should ask the user for the concrete package implementation to use for a virtual one when more than one possible choice exists' do
98
+ @policy = policy :virtual, :roles => :app do; requires :abc; end
99
+ Sprinkle::Package::PACKAGES[:abc].should include(@c)
100
+ Sprinkle::Package::PACKAGES[:abc].should include(@d)
101
+ $terminal.should_receive(:choose).and_return(:c)
102
+ end
103
+
104
+ end
105
+
106
+ after do
107
+ @policy.process(@deployment)
108
+ end
109
+ end
110
+ end
111
+
112
+ describe Sprinkle::Policy, 'with missing packages' do
113
+
114
+ before do
115
+ @deployment = mock(Sprinkle::Deployment)
116
+ Sprinkle::Package::PACKAGES.clear # reset full package list before each spec is run
117
+
118
+ @policy = policy :test, :roles => :app do; requires :z; end
119
+ $terminal.stub!(:choose).and_return(:c) # stub out highline asking questions
120
+ end
121
+
122
+ it 'should raise an error if a package is missing' do
123
+ lambda { @policy.process(@deployment) }.should raise_error
124
+ end
125
+
126
+ end
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Script, 'class' do
4
+
5
+ it 'should define a entry point into the system' do
6
+ Sprinkle::Script.should respond_to(:sprinkle)
7
+ end
8
+
9
+ end
10
+
11
+ describe Sprinkle::Script, 'when given a script' do
12
+
13
+ before do
14
+ @script = 'script'
15
+ @filename = 'filename'
16
+
17
+ @sprinkle = Sprinkle::Script.new
18
+ Sprinkle::Script.stub!(:new).and_return(@sprinkle)
19
+ end
20
+
21
+ it 'should create a new sprinkle instance' do
22
+ Sprinkle::Script.should_receive(:new).and_return(@sprinkle)
23
+ Sprinkle::Script.sprinkle @script
24
+ end
25
+
26
+ it 'should evaulate the sprinkle script against the instance' do
27
+ @sprinkle.should_receive(:instance_eval).and_return
28
+ Sprinkle::Script.sprinkle @script
29
+ end
30
+
31
+ it 'should specify the filename if given for line number errors' do
32
+ @sprinkle.should_receive(:instance_eval).with(@script, @filename).and_return
33
+ Sprinkle::Script.sprinkle @script, @filename
34
+ end
35
+
36
+ it 'should specify a filename of __SCRIPT__ by default if none is provided' do
37
+ @sprinkle.should_receive(:instance_eval).with(@script, '__SCRIPT__').and_return
38
+ Sprinkle::Script.sprinkle @script
39
+ end
40
+
41
+ it 'should automatically run in production mode by default' do
42
+ @sprinkle.should_receive(:instance_eval).with(@script, '__SCRIPT__').and_return
43
+ Sprinkle::Script.sprinkle @script
44
+ end
45
+
46
+ it 'should ask the Sprinkle instance to process the data from the script' do
47
+ @sprinkle.should_receive(:sprinkle)
48
+ Sprinkle::Script.sprinkle @script
49
+ end
50
+
51
+ end
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle do
4
+
5
+ it 'should automatically extend Object to support package, policy and deployment DSL keywords' do
6
+ %w( package policy deployment ).each do |keyword|
7
+ Object.should respond_to(keyword.to_sym)
8
+ end
9
+ end
10
+
11
+ it 'should default to production mode' do
12
+ Sprinkle::OPTIONS[:testing].should be_false
13
+ end
14
+
15
+ it 'should automatically create a logger object on Kernel' do
16
+ Object.should respond_to(:logger)
17
+ logger.should_not be_nil
18
+ logger.class.should == ActiveSupport::BufferedLogger
19
+ end
20
+
21
+ it 'should create a logger of level INFO' do
22
+ logger.level.should == ActiveSupport::BufferedLogger::Severity::INFO
23
+ end
24
+
25
+ end
@@ -0,0 +1,167 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Verify do
4
+ before do
5
+ @name = :package
6
+ @package = package @name do
7
+ gem 'nonexistent'
8
+ verify 'moo' do
9
+ # Check a file exists
10
+ has_file 'my_file.txt'
11
+
12
+ # Check that a file contains a substring
13
+ file_contains 'my_file.txt', 'A sunny day on the lower east-side'
14
+
15
+ # Check a directory exists
16
+ has_directory 'mydir'
17
+
18
+ # Check a symlink exists
19
+ has_symlink 'mypointer'
20
+
21
+ # Check a symlink points to a certain file
22
+ has_symlink 'mypointer', 'myfile'
23
+
24
+ # Check if an executable exists
25
+ has_executable '/usr/bin/ruby'
26
+
27
+ # Check if a global executable exists (in PATH)
28
+ has_executable 'rails'
29
+
30
+ # Check for a process
31
+ has_process 'httpd'
32
+
33
+ # Check that ruby can include files
34
+ ruby_can_load 'a', 'b', 'c'
35
+
36
+ # Check that a gem exists
37
+ has_gem 'rails'
38
+ has_gem 'rails', '2.1.0'
39
+ end
40
+ end
41
+ @verification = @package.verifications[0]
42
+ @delivery = mock(Sprinkle::Deployment, :process => true)
43
+ @verification.delivery = @delivery
44
+ end
45
+
46
+ describe 'when created' do
47
+ it 'should raise error without a block' do
48
+ lambda { Verify.new(nil, '') }.should raise_error
49
+ end
50
+ end
51
+
52
+ describe 'with checks' do
53
+ it 'should do a "test -f" on the has_file check' do
54
+ @verification.commands.should include('test -f my_file.txt')
55
+ end
56
+
57
+ it 'should do a grep to see if a file contains a text string' do
58
+ @verification.commands.should include("grep 'A sunny day on the lower east-side' my_file.txt")
59
+ end
60
+
61
+ it 'should do a "test -d" on the has_directory check' do
62
+ @verification.commands.should include('test -d mydir')
63
+ end
64
+
65
+ it 'should do a "test -L" to check something is a symbolic link' do
66
+ @verification.commands.should include('test -L mypointer')
67
+ end
68
+
69
+ it 'should do a test equality to check a symlink points to a specific file' do
70
+ @verification.commands.should include("test 'myfile' = `readlink mypointer`")
71
+ end
72
+
73
+ it 'should do a "test -x" to check for an executable' do
74
+ @verification.commands.should include("test -x /usr/bin/ruby")
75
+ end
76
+
77
+ it 'should test the "which" command to look for a global executable' do
78
+ @verification.commands.should include('[ -n "`echo \`which rails\``" ]')
79
+ end
80
+
81
+ it 'should test the process list to find a process' do
82
+ @verification.commands.should include("ps aux | grep 'httpd' | grep -v grep")
83
+ end
84
+
85
+ it 'should check if ruby can include a, b, c' do
86
+ @verification.commands.should include("ruby -e \"require 'rubygems';require 'a';require 'b';require 'c'\"")
87
+ end
88
+
89
+ it 'should check that a ruby gem is installed' do
90
+ @verification.commands.should include("sudo gem list | grep -e '^rails (.*.*)$'")
91
+ @verification.commands.should include("sudo gem list | grep -e '^rails (.*2\\.1\\.0.*)$'")
92
+ end
93
+ end
94
+
95
+ describe 'with configurations' do
96
+ # Make sure it includes Sprinkle::Configurable
97
+ it 'should respond to configurable methods' do
98
+ @verification.should respond_to(:defaults)
99
+ end
100
+
101
+ it 'should default padding option to 4' do
102
+ @verification.padding.should eql(4)
103
+ end
104
+ end
105
+
106
+ describe 'with process' do
107
+ it 'should raise an error when no delivery mechanism is set' do
108
+ @verification.instance_variable_set(:@delivery, nil)
109
+ lambda { @verification.process([]) }.should raise_error
110
+ end
111
+
112
+ describe 'when not testing' do
113
+ before do
114
+ # To be explicit
115
+ Sprinkle::OPTIONS[:testing] = false
116
+ end
117
+
118
+ it 'should call process on the delivery with the correct parameters' do
119
+ @delivery.should_receive(:process).with(@name, @verification.commands, [:app], true).once.and_return(true)
120
+ @verification.process([:app])
121
+ end
122
+
123
+ it 'should raise Sprinkle::VerificationFailed exception when commands fail' do
124
+ @delivery.should_receive(:process).once.and_return(false)
125
+ lambda { @verification.process([:app]) }.should raise_error(Sprinkle::VerificationFailed) do |error|
126
+ error.package.should eql(@package)
127
+ error.description.should eql('moo')
128
+ end
129
+ end
130
+ end
131
+
132
+ describe 'when testing' do
133
+ before do
134
+ Sprinkle::OPTIONS[:testing] = true
135
+ @logger = mock(ActiveSupport::BufferedLogger, :debug => true, :debug? => true)
136
+ end
137
+
138
+ it 'should not call process on the delivery' do
139
+ @delivery.should_not_receive(:process)
140
+ end
141
+
142
+ it 'should print the install sequence to the console' do
143
+ @verification.should_receive(:logger).twice.and_return(@logger)
144
+ end
145
+
146
+ after do
147
+ @verification.process([:app])
148
+ Sprinkle::OPTIONS[:testing] = false
149
+ end
150
+ end
151
+ end
152
+
153
+ describe 'with registering new verification modules' do
154
+ module MyModule
155
+ def rawr; end
156
+ end
157
+
158
+ it 'should not respond to rawr initially' do
159
+ @verification.should_not respond_to(:rawr)
160
+ end
161
+
162
+ it 'should respond to rawr after registering the module' do
163
+ Sprinkle::Verify.register(MyModule)
164
+ @verification.should respond_to(:rawr)
165
+ end
166
+ end
167
+ end
data/sprinkle.gemspec ADDED
@@ -0,0 +1,73 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = %q{sprinkle}
3
+ s.version = "0.2.4"
4
+
5
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
+ s.authors = ["Marcus Crafter", "Mitchell Hashimoto"]
7
+ s.date = %q{2009-05-26}
8
+ s.default_executable = %q{sprinkle}
9
+ s.description = %q{Ruby DSL based software provisioning tool}
10
+ s.email = ["crafterm@redartisan.com", "mitchell.hashimoto@citrusbyte.com"]
11
+ s.executables = ["sprinkle"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
13
+ s.files = ["CREDITS", "History.txt", "MIT-LICENSE", "Manifest.txt", "README.txt", "Rakefile", "bin/sprinkle",
14
+ "config/hoe.rb", "config/requirements.rb", "examples/packages/build_essential.rb",
15
+ "examples/packages/databases/mysql.rb", "examples/packages/databases/sqlite3.rb",
16
+ "examples/packages/phusion.rb", "examples/packages/ruby/rails.rb", "examples/packages/ruby/ruby.rb",
17
+ "examples/packages/ruby/rubygems.rb", "examples/packages/scm/git.rb", "examples/packages/scm/subversion.rb",
18
+ "examples/packages/servers/apache.rb", "examples/rails/README", "examples/rails/deploy.rb",
19
+ "examples/rails/packages/database.rb", "examples/rails/packages/essential.rb", "examples/rails/packages/rails.rb",
20
+ "examples/rails/packages/scm.rb", "examples/rails/packages/search.rb", "examples/rails/packages/server.rb",
21
+ "examples/rails/rails.rb", "examples/sprinkle/sprinkle.rb", "lib/sprinkle.rb", "lib/sprinkle/actors/actors.rb",
22
+ "lib/sprinkle/actors/capistrano.rb", "lib/sprinkle/actors/local.rb", "lib/sprinkle/actors/ssh.rb", "lib/sprinkle/actors/vlad.rb",
23
+ "lib/sprinkle/configurable.rb", "lib/sprinkle/deployment.rb", "lib/sprinkle/extensions/arbitrary_options.rb",
24
+ "lib/sprinkle/extensions/array.rb", "lib/sprinkle/extensions/blank_slate.rb", "lib/sprinkle/extensions/dsl_accessor.rb",
25
+ "lib/sprinkle/extensions/string.rb", "lib/sprinkle/extensions/symbol.rb", "lib/sprinkle/installers/apt.rb",
26
+ "lib/sprinkle/installers/deb.rb", "lib/sprinkle/installers/gem.rb", "lib/sprinkle/installers/installer.rb",
27
+ "lib/sprinkle/installers/rake.rb", "lib/sprinkle/installers/rpm.rb", "lib/sprinkle/installers/source.rb",
28
+ "lib/sprinkle/installers/yum.rb", "lib/sprinkle/installers/freebsd_pkg.rb", "lib/sprinkle/installers/openbsd_pkg.rb",
29
+ "lib/sprinkle/installers/opensolaris_pkg.rb", "lib/sprinkle/installers/bsd_port.rb", "lib/sprinkle/installers/mac_port.rb", "lib/sprinkle/installers/push_text.rb",
30
+ "lib/sprinkle/package.rb", "lib/sprinkle/policy.rb", "lib/sprinkle/script.rb", "lib/sprinkle/verifiers/directory.rb",
31
+ "lib/sprinkle/verifiers/executable.rb", "lib/sprinkle/verifiers/file.rb", "lib/sprinkle/verifiers/process.rb",
32
+ "lib/sprinkle/verifiers/ruby.rb", "lib/sprinkle/verifiers/symlink.rb", "lib/sprinkle/verify.rb", "lib/sprinkle/version.rb",
33
+ "script/destroy", "script/generate", "sprinkle.gemspec", "tasks/deployment.rake", "tasks/environment.rake", "tasks/rspec.rake"]
34
+
35
+ s.test_files = ["spec/spec.opts", "spec/spec_helper.rb", "spec/sprinkle/actors/capistrano_spec.rb",
36
+ "spec/sprinkle/actors/local_spec.rb", "spec/sprinkle/configurable_spec.rb", "spec/sprinkle/deployment_spec.rb",
37
+ "spec/sprinkle/extensions/array_spec.rb", "spec/sprinkle/extensions/string_spec.rb", "spec/sprinkle/installers/apt_spec.rb",
38
+ "spec/sprinkle/installers/gem_spec.rb", "spec/sprinkle/installers/installer_spec.rb", "spec/sprinkle/installers/rpm_spec.rb",
39
+ "spec/sprinkle/installers/yum_spec.rb", "spec/sprinkle/installers/source_spec.rb", "spec/sprinkle/installers/freebsd_pkg_spec.rb",
40
+ "spec/sprinkle/installers/openbsd_pkg_spec.rb", "spec/sprinkle/installers/opensolaris_pkg_spec.rb",
41
+ "spec/sprinkle/installers/mac_port_spec.rb", "spec/sprinkle/installers/push_text_spec.rb", "spec/sprinkle/installers/bsd_port_spec.rb", "spec/sprinkle/policy_spec.rb",
42
+ "spec/sprinkle/script_spec.rb", "spec/sprinkle/sprinkle_spec.rb", "spec/sprinkle/installers/rake_spec.rb", "spec/sprinkle/verify_spec.rb"]
43
+ s.has_rdoc = true
44
+ s.homepage = %q{http://sprinkle.rubyforge.org}
45
+ s.rdoc_options = ["--main", "README.txt"]
46
+ s.require_paths = ["lib"]
47
+ s.rubyforge_project = %q{sprinkle}
48
+ s.rubygems_version = %q{1.3.0}
49
+ s.summary = %q{Ruby DSL based software provisioning tool}
50
+
51
+ if s.respond_to? :specification_version then
52
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
53
+ s.specification_version = 2
54
+
55
+ if current_version >= 3 then
56
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.0.2"])
57
+ s.add_runtime_dependency(%q<highline>, [">= 1.4.0"])
58
+ s.add_runtime_dependency(%q<capistrano>, [">= 2.5.5"])
59
+ s.add_development_dependency(%q<hoe>, [">= 1.8.2"])
60
+ s.add_development_dependency(%q<echoe>, [">= 3.0.2"])
61
+ else
62
+ s.add_dependency(%q<activesupport>, [">= 2.0.2"])
63
+ s.add_dependency(%q<highline>, [">= 1.4.0"])
64
+ s.add_dependency(%q<capistrano>, [">= 2.5.5"])
65
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
66
+ end
67
+ else
68
+ s.add_dependency(%q<activesupport>, [">= 2.0.2"])
69
+ s.add_dependency(%q<highline>, [">= 1.4.0"])
70
+ s.add_dependency(%q<capistrano>, [">= 2.5.5"])
71
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
72
+ end
73
+ end