shadow_puppet 0.3.3 → 0.4.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
data/IsolateScenarios ADDED
@@ -0,0 +1,10 @@
1
+ baseline do
2
+ gem 'rspec', '~> 1.3.0'
3
+ end
4
+
5
+ gem_version_scenario 'activesupport',
6
+ '3.0.0.rc',
7
+ '3.0.0.beta4',
8
+ '2.2.3',
9
+ '2.3.5',
10
+ '2.3.8'
data/README.rdoc CHANGED
@@ -9,3 +9,10 @@ ShadowPuppet::Manifest.
9
9
 
10
10
  A binary[http://railsmachine.github.com/shadow_puppet/files/bin/shadow_puppet.html] is provided to parse and execute a
11
11
  ShadowPuppet::Manifest.
12
+
13
+ == Running the Test Suite
14
+
15
+ $ gem install rspec isolate-scenarios
16
+ $ rake spec
17
+ # To test against all supported versions of ActiveSupport:
18
+ $ isolate-scenarios rake spec
data/Rakefile CHANGED
@@ -8,9 +8,9 @@ Jeweler::Tasks.new do |gem|
8
8
  gem.email = "jesse@railsmachine.com"
9
9
  gem.homepage = "http://railsmachine.github.com/shadow_puppet"
10
10
  gem.rubyforge_project = "moonshine"
11
- gem.authors = ["Jesse Newland", "Josh Nichols"]
11
+ gem.authors = ["Jesse Newland", "Josh Nichols", "Eric Lindvall", "Lee Jones", "dreamcat4", "Patrick Schless", "Ches Martin", "Rob Lingle", "Scott Fleckenstein"]
12
12
 
13
- gem.version = "0.3.3"
13
+ gem.version = "0.4.0.beta1"
14
14
 
15
15
  gem.add_dependency('puppet', ["= 0.24.8"])
16
16
  gem.add_dependency('facter', [">= 1.5.4"])
@@ -21,6 +21,7 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.rdoc_options << '--inline-source' << '--webcvs=http://github.com/railsmachine/shadow_puppet/tree/master/'
22
22
 
23
23
  gem.add_development_dependency "rspec", ">= 0"
24
+ gem.add_development_dependency "isolate-scenarios", ">= 0"
24
25
 
25
26
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
26
27
  end
data/bin/shadow_puppet CHANGED
@@ -29,84 +29,121 @@
29
29
  #ShadowPuppet::Manifest. An instance of this class is created, and the
30
30
  #<tt>execute</tt> method is called. All output is printed to the console.
31
31
 
32
- begin
32
+ def unindent(string)
33
+ indentation = string[/\A\s*/]
34
+ string.strip.gsub(/^#{indentation}/, "")
35
+ end
33
36
 
37
+ begin
34
38
  require 'optparse'
39
+
40
+ ShadowPuppetOptions = Struct.new(:graph, :noop)
41
+ options = ShadowPuppetOptions.new
42
+
35
43
  opts = OptionParser.new do |opts|
36
- opts.banner = <<-EOF
37
- NAME
38
- Shadow Puppet
44
+ opts.banner = "Usage: shadow_puppet [options] <manifest>"
45
+
46
+ opts.separator ""
47
+ opts.separator "Specific options:"
48
+
49
+ opts.on("--tutorial", "A simple tutorial for usage") do
50
+ puts unindent(<<-EOF)
51
+ NAME
52
+ Shadow Puppet
53
+
54
+ AUTHOR
55
+ Jesse Newland
56
+ jesse@railsmachine.com
57
+
58
+ DESCRIPTION
59
+ A Ruby DSL for puppet
60
+
61
+ EXAMPLES
62
+ Sample manifest:
39
63
 
40
- AUTHOR
41
- Jesse Newland
42
- jesse@railsmachine.com
64
+ # foo.rb
65
+ class Foo < ShadowPuppet::Manifest
66
+ recipe :foo
43
67
 
44
- DESCRIPTION
45
- A Ruby DSL for puppet
68
+ def foo
69
+ exec :foo, :command => 'echo "foo" > /tmp/foo.txt'
70
+ file '/tmp/example.txt', :ensure => :present, :content => Facter.to_hash.inspect
71
+ end
72
+ end
46
73
 
47
- EXAMPLES
48
- Sample manifest:
74
+ Executing this manifest:
49
75
 
50
- #foo.rb
51
- class Foo < ShadowPuppet::Manifest
52
- recipe :foo
76
+ $ shadow_puppet foo.rb
77
+ notice: /shadow_puppet:19861340/Exec[foo]/returns: executed successfully
78
+ $
53
79
 
54
- def foo
55
- exec :foo, :command => 'echo "foo" > /tmp/foo.txt'
56
- file '/tmp/example.txt', :ensure => :present, :content => Facter.to_hash.inspect
57
- end
58
- end
80
+ The shadow_puppet binary parses the given ruby code, which is
81
+ expected to contain a class named Foo that inherits from
82
+ ShadowPuppet::Manifest. An instance of this class is created, and the
83
+ execute method is called. All output is printed to the console.
84
+ EOF
59
85
 
60
- Executing this manifest:
86
+ exit(1)
87
+ end
61
88
 
62
- $ shadow_puppet foo.rb
63
- notice: /shadow_puppet:19861340/Exec[foo]/returns: executed successfully
64
- $
89
+ opts.on("-g", "--graph=[FILE]", "File to write graph .dot to") do |graph|
90
+ options.graph = graph
91
+ end
65
92
 
66
- The shadow_puppet binary parses the given ruby code, which is
67
- expected to contain a class named Foo that inherits from
68
- ShadowPuppet::Manifest. An instance of this class is created, and the
69
- execute method is called. All output is printed to the console.
70
- EOF
93
+ opts.on("-n", "--noop", "Run in a no-op or dry-run mode") do
94
+ options.noop = true
95
+ end
71
96
 
97
+ opts.on_tail("-h", "--help", "Show this message") do
98
+ puts opts
99
+ exit
100
+ end
72
101
  end
73
102
 
74
103
  opts.parse!
75
104
 
76
- require 'rubygems'
77
-
78
- # hack around absurd number of deprecation warnings from puppet
79
- # using `metaclass`
80
- require 'active_support/core_ext/module/attribute_accessors'
81
- require 'active_support/core_ext/kernel/reporting'
82
- require 'active_support/deprecation'
83
- ActiveSupport::Deprecation.silenced = true
84
-
85
- require 'shadow_puppet'
86
- require 'active_support/inflector'
87
- require 'active_support/core_ext/string/inflections'
88
- unless String.included_modules.include?(ActiveSupport::CoreExtensions::String::Inflections)
89
- String.send :include, ActiveSupport::CoreExtensions::String::Inflections
105
+ unless filename = ARGV[0]
106
+ puts "Error: Manifest filename must be provided\n\n"
107
+ puts opts
108
+ exit(1)
109
+ # Take any variables set on the command line and update ENV
110
+ ARGV.delete_if do |arg|
111
+ next unless arg =~ /^(\w+)=(.*)$/
112
+ ENV[$1] = $2
113
+ end
90
114
  end
115
+
116
+ require 'rubygems'
117
+ require 'shadow_puppet/core_ext'
91
118
  require 'fileutils'
92
119
 
93
- filename = ARGV[0]
94
- raise ArgumentError unless filename
120
+ if options.noop
121
+ Puppet[:noop] = true
122
+ Puppet[:show_diff] = true
123
+ end
95
124
 
96
125
  klass = File.basename(filename, ".rb")
97
126
  require filename
98
- manifest = klass.classify.constantize.new
99
- manifest.execute! && exit(0)
127
+ manifest = klass.camelize.constantize.new
128
+
129
+ if options.graph
130
+ manifest.graph_to(klass.classify, options.graph)
131
+ else
132
+ if manifest.execute!
133
+ exit(0)
134
+ else
135
+ exit(1)
136
+ end
137
+ end
138
+
100
139
  rescue Errno::EACCES
101
140
  puts "Please run shadow_puppet as root"
102
141
  rescue Exception => e
103
142
  if e.instance_of?(SystemExit)
104
143
  raise
105
144
  else
106
- puts 'Uncaught exception'
107
- puts e.class
108
- puts e.message
109
- puts e.backtrace.join("\n")
145
+ puts "Uncaught exception: #{e.class}: #{e.message}"
146
+ puts "\t#{e.backtrace.join("\n\t")}"
110
147
  exit(1)
111
148
  end
112
149
  end
@@ -1,29 +1,35 @@
1
1
  require 'active_support/version'
2
-
3
2
  require 'active_support/core_ext/class/attribute_accessors'
4
3
  require 'active_support/core_ext/array'
4
+ require 'active_support/core_ext/hash/deep_merge'
5
+ require 'active_support/core_ext/hash/indifferent_access'
5
6
  require 'active_support/inflector'
6
7
  require 'active_support/core_ext/class/inheritable_attributes'
7
8
 
9
+ # zomg epic hax
8
10
  if ActiveSupport::VERSION::MAJOR < 3
11
+ if ActiveSupport::VERSION::TINY > 5
12
+ # hack around absurd number of deprecation warnings from puppet
13
+ # using `metaclass`
14
+ require 'active_support/core_ext/kernel/reporting'
15
+ require 'active_support/core_ext/module/attribute_accessors'
16
+ require 'active_support/deprecation'
17
+ ActiveSupport::Deprecation.silenced = true
18
+ end
19
+ require 'active_support/core_ext/string/inflections'
20
+ unless String.included_modules.include?(ActiveSupport::CoreExtensions::String::Inflections)
21
+ String.send :include, ActiveSupport::CoreExtensions::String::Inflections
22
+ end
9
23
  require 'active_support/core_ext/duplicable'
24
+ class Hash #:nodoc:
25
+ include ActiveSupport::CoreExtensions::Hash::DeepMerge
26
+ include ActiveSupport::CoreExtensions::Hash::IndifferentAccess
27
+ end
10
28
  else
11
29
  require 'active_support/core_ext/object/duplicable'
12
30
  end
13
31
 
14
32
  class Hash #:nodoc:
15
- def deep_merge(other_hash)
16
- self.merge(other_hash) do |key, oldval, newval|
17
- oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
18
- newval = newval.to_hash if newval.respond_to?(:to_hash)
19
- oldval.is_a?(Hash) && newval.is_a?(Hash) ? oldval.deep_merge(newval) : newval
20
- end
21
- end
22
-
23
- def deep_merge!(other_hash)
24
- replace(deep_merge(other_hash))
25
- end
26
-
27
33
  def deep_symbolize_keys
28
34
  self.inject({}) { |result, (key, value)|
29
35
  value = value.deep_symbolize_keys if value.is_a?(Hash)
@@ -119,7 +119,18 @@ module ShadowPuppet
119
119
  end
120
120
  end
121
121
 
122
- # A hash describing any configuration that has been
122
+ # Access to a recipe of the class of this instance.
123
+ #
124
+ # class SampleManifest < ShadowPuppet::Manifest
125
+ # def my_recipe
126
+ # recipe :other_recipe
127
+ # end
128
+ # end
129
+ def recipe(*methods)
130
+ self.class.recipe *methods
131
+ end
132
+
133
+ # A HashWithIndifferentAccess describing any configuration that has been
123
134
  # performed on the class. Modify this hash by calling configure:
124
135
  #
125
136
  # class SampleManifest < ShadowPuppet::Manifest
@@ -128,13 +139,11 @@ module ShadowPuppet
128
139
  #
129
140
  # >> SampleManifest.configuration
130
141
  # => {:name => 'test'}
131
- #
132
- # All keys on this hash are coerced into symbols for ease of access.
133
- #
142
+ # #
134
143
  # Subclasses of the Manifest class properly inherit the parent classes'
135
144
  # configuration.
136
145
  def self.configuration
137
- __config__.deep_symbolize_keys
146
+ __config__.with_indifferent_access
138
147
  end
139
148
 
140
149
  # Access to the configuration of the class of this instance.
@@ -160,13 +169,11 @@ module ShadowPuppet
160
169
  #
161
170
  # >> SampleManifest.configuration
162
171
  # => {:name => 'test'}
163
- #
164
- # All keys on this hash are coerced into symbols for ease of access.
165
- #
172
+ # #
166
173
  # Subsequent calls to configure perform a deep_merge of the provided
167
174
  # <tt>hash</tt> into the pre-existing configuration.
168
175
  def self.configure(hash)
169
- __config__.deep_merge!(hash)
176
+ __config__.replace(__config__.deep_symbolize_keys.deep_merge(hash.deep_symbolize_keys))
170
177
  end
171
178
 
172
179
  # Update the configuration of this manifest instance's class.
@@ -258,6 +265,27 @@ module ShadowPuppet
258
265
  @executed = true
259
266
  end
260
267
 
268
+ def graph_to(name, destination)
269
+ evaluate_recipes
270
+
271
+ bucket = export()
272
+ catalog = bucket.to_catalog
273
+ relationship_graph = catalog.relationship_graph
274
+
275
+ graph = relationship_graph.to_dot_graph("name" => "#{name} Relationships".gsub(/\W+/, '_'))
276
+ graph.options['label'] = "#{name} Relationships"
277
+
278
+ # The graph ends up having all of the edges backwards
279
+ graph.each_node do |node|
280
+ next unless node.is_a?(DOT::DOTEdge)
281
+ node.to, node.from = node.from, node.to
282
+ end
283
+
284
+ File.open(destination, "w") { |f|
285
+ f.puts graph.to_s
286
+ }
287
+ end
288
+
261
289
  protected
262
290
 
263
291
  #Has this manifest instance been executed?
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{shadow_puppet}
8
- s.version = "0.3.3"
8
+ s.version = "0.4.0.beta1"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Jesse Newland", "Josh Nichols"]
12
- s.date = %q{2010-06-29}
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jesse Newland", "Josh Nichols", "Eric Lindvall", "Lee Jones", "dreamcat4", "Patrick Schless", "Ches Martin", "Rob Lingle", "Scott Fleckenstein"]
12
+ s.date = %q{2010-08-18}
13
13
  s.default_executable = %q{shadow_puppet}
14
14
  s.description = %q{A Ruby Puppet DSL}
15
15
  s.email = %q{jesse@railsmachine.com}
@@ -21,12 +21,12 @@ Gem::Specification.new do |s|
21
21
  s.files = [
22
22
  ".gitignore",
23
23
  ".gitmodules",
24
+ "IsolateScenarios",
24
25
  "LICENSE",
25
26
  "README.rdoc",
26
27
  "Rakefile",
27
28
  "bin/shadow_puppet",
28
29
  "examples/foo.rb",
29
- "ginger_scenarios.rb",
30
30
  "lib/shadow_puppet.rb",
31
31
  "lib/shadow_puppet/core_ext.rb",
32
32
  "lib/shadow_puppet/manifest.rb",
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
43
43
  s.rdoc_options = ["--charset=UTF-8", "--inline-source", "--webcvs=http://github.com/railsmachine/shadow_puppet/tree/master/"]
44
44
  s.require_paths = ["lib"]
45
45
  s.rubyforge_project = %q{moonshine}
46
- s.rubygems_version = %q{1.3.6}
46
+ s.rubygems_version = %q{1.3.7}
47
47
  s.summary = %q{A Ruby Puppet DSL}
48
48
  s.test_files = [
49
49
  "spec/fixtures/manifests.rb",
@@ -58,13 +58,14 @@ Gem::Specification.new do |s|
58
58
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
59
59
  s.specification_version = 3
60
60
 
61
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
61
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
62
62
  s.add_runtime_dependency(%q<puppet>, ["= 0.24.8"])
63
63
  s.add_runtime_dependency(%q<facter>, [">= 1.5.4"])
64
64
  s.add_runtime_dependency(%q<highline>, [">= 1.5.0"])
65
65
  s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
66
66
  s.add_runtime_dependency(%q<activesupport>, [">= 2.0.0"])
67
67
  s.add_development_dependency(%q<rspec>, [">= 0"])
68
+ s.add_development_dependency(%q<isolate-scenarios>, [">= 0"])
68
69
  else
69
70
  s.add_dependency(%q<puppet>, ["= 0.24.8"])
70
71
  s.add_dependency(%q<facter>, [">= 1.5.4"])
@@ -72,6 +73,7 @@ Gem::Specification.new do |s|
72
73
  s.add_dependency(%q<builder>, [">= 2.1.2"])
73
74
  s.add_dependency(%q<activesupport>, [">= 2.0.0"])
74
75
  s.add_dependency(%q<rspec>, [">= 0"])
76
+ s.add_dependency(%q<isolate-scenarios>, [">= 0"])
75
77
  end
76
78
  else
77
79
  s.add_dependency(%q<puppet>, ["= 0.24.8"])
@@ -80,6 +82,7 @@ Gem::Specification.new do |s|
80
82
  s.add_dependency(%q<builder>, [">= 2.1.2"])
81
83
  s.add_dependency(%q<activesupport>, [">= 2.0.0"])
82
84
  s.add_dependency(%q<rspec>, [">= 0"])
85
+ s.add_dependency(%q<isolate-scenarios>, [">= 0"])
83
86
  end
84
87
  end
85
88
 
@@ -16,7 +16,7 @@ end
16
16
  class RequiresMetViaMethods < ShadowPuppet::Manifest
17
17
  recipe :foo, :bar
18
18
 
19
- configure({ :foo => :bar , :nested_hash => { :nested_foo => :bar } })
19
+ configure({ :foo => :bar , :nested_hash => { :nested_foo => :bar }, 'string' => 'value' })
20
20
 
21
21
  def foo
22
22
  exec('foo', :command => 'true')
@@ -37,6 +37,18 @@ class RequiresMetViaMethodsSubclass < RequiresMetViaMethods
37
37
  end
38
38
  end
39
39
 
40
+ # Requirements can be handled by other recipes in the class
41
+ class RequiresMetViaRecipeFromClassOfInstance < ShadowPuppet::Manifest
42
+ def bar
43
+ # other recipe stuff
44
+ end
45
+
46
+ def foo
47
+ recipe :bar
48
+ end
49
+ recipe :foo
50
+ end
51
+
40
52
  #requirements can also be handled by functions in external modules
41
53
  class ProvidedViaModules < ShadowPuppet::Manifest
42
54
  module FooRecipe
@@ -92,4 +104,4 @@ class TestHelpers < ShadowPuppet::Manifest
92
104
  file('baz', :content => 'bar',:mode => '644',:owner => 'rails')
93
105
  end
94
106
 
95
- end
107
+ end
@@ -94,6 +94,17 @@ describe "A manifest" do
94
94
  @manifest.configuration[:foo].should == :bar
95
95
  end
96
96
 
97
+ it "can access configurations configured using symbols with symbols or strings" do
98
+ @manifest.configuration[:foo].should == :bar
99
+ @manifest.configuration['foo'].should == :bar
100
+ end
101
+
102
+
103
+ it "can access configurations configured using strings with symbols or strings" do
104
+ @manifest.configuration['string'].should == 'value'
105
+ @manifest.configuration[:string].should == 'value'
106
+ end
107
+
97
108
  it "has a name" do
98
109
  @manifest.name.should == "#{@manifest.class}##{@manifest.object_id}"
99
110
  end
@@ -188,6 +199,7 @@ describe "A manifest" do
188
199
  it "deep_merges it's configuration with that of the parent" do
189
200
  @manifest.class.configuration[:nested_hash][:nested_baz].should == :bar
190
201
  @manifest.class.configuration[:nested_hash][:nested_foo].should == :bar
202
+ @manifest.class.configuration['nested_hash']['nested_foo'].should == :bar
191
203
  end
192
204
 
193
205
  it "is able to add configuration parameters on the instance" do
@@ -197,5 +209,13 @@ describe "A manifest" do
197
209
  end
198
210
 
199
211
  end
212
+ describe "that has recipes called from other recipes" do
213
+ before(:each) do
214
+ @manifest = RequiresMetViaRecipeFromClassOfInstance.new
215
+ end
200
216
 
201
- end
217
+ it "is able to call a recipe of the class of this instance" do
218
+ @manifest.execute.should be_true
219
+ end
220
+ end
221
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  require 'rubygems'
2
- require 'ginger'
2
+ require 'isolate/scenarios/now'
3
3
  gem 'rspec'
4
4
  require 'spec'
5
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'shadow_puppet', 'core_ext.rb')
5
6
  require File.join(File.dirname(__FILE__), '..', 'lib', 'shadow_puppet.rb')
6
7
  require File.join(File.dirname(__FILE__), '..', 'lib', 'shadow_puppet', 'test.rb')
7
8
  Dir.glob(File.join(File.dirname(__FILE__), 'fixtures', '*.rb')).each do |manifest|
metadata CHANGED
@@ -1,30 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shadow_puppet
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: -1848230035
5
+ prerelease: true
5
6
  segments:
6
7
  - 0
7
- - 3
8
- - 3
9
- version: 0.3.3
8
+ - 4
9
+ - 0
10
+ - beta1
11
+ version: 0.4.0.beta1
10
12
  platform: ruby
11
13
  authors:
12
14
  - Jesse Newland
13
15
  - Josh Nichols
16
+ - Eric Lindvall
17
+ - Lee Jones
18
+ - dreamcat4
19
+ - Patrick Schless
20
+ - Ches Martin
21
+ - Rob Lingle
22
+ - Scott Fleckenstein
14
23
  autorequire:
15
24
  bindir: bin
16
25
  cert_chain: []
17
26
 
18
- date: 2010-06-29 00:00:00 -04:00
27
+ date: 2010-08-18 00:00:00 -04:00
19
28
  default_executable: shadow_puppet
20
29
  dependencies:
21
30
  - !ruby/object:Gem::Dependency
22
31
  name: puppet
23
32
  prerelease: false
24
33
  requirement: &id001 !ruby/object:Gem::Requirement
34
+ none: false
25
35
  requirements:
26
36
  - - "="
27
37
  - !ruby/object:Gem::Version
38
+ hash: 111
28
39
  segments:
29
40
  - 0
30
41
  - 24
@@ -36,9 +47,11 @@ dependencies:
36
47
  name: facter
37
48
  prerelease: false
38
49
  requirement: &id002 !ruby/object:Gem::Requirement
50
+ none: false
39
51
  requirements:
40
52
  - - ">="
41
53
  - !ruby/object:Gem::Version
54
+ hash: 11
42
55
  segments:
43
56
  - 1
44
57
  - 5
@@ -50,9 +63,11 @@ dependencies:
50
63
  name: highline
51
64
  prerelease: false
52
65
  requirement: &id003 !ruby/object:Gem::Requirement
66
+ none: false
53
67
  requirements:
54
68
  - - ">="
55
69
  - !ruby/object:Gem::Version
70
+ hash: 3
56
71
  segments:
57
72
  - 1
58
73
  - 5
@@ -64,9 +79,11 @@ dependencies:
64
79
  name: builder
65
80
  prerelease: false
66
81
  requirement: &id004 !ruby/object:Gem::Requirement
82
+ none: false
67
83
  requirements:
68
84
  - - ">="
69
85
  - !ruby/object:Gem::Version
86
+ hash: 15
70
87
  segments:
71
88
  - 2
72
89
  - 1
@@ -78,9 +95,11 @@ dependencies:
78
95
  name: activesupport
79
96
  prerelease: false
80
97
  requirement: &id005 !ruby/object:Gem::Requirement
98
+ none: false
81
99
  requirements:
82
100
  - - ">="
83
101
  - !ruby/object:Gem::Version
102
+ hash: 15
84
103
  segments:
85
104
  - 2
86
105
  - 0
@@ -92,14 +111,30 @@ dependencies:
92
111
  name: rspec
93
112
  prerelease: false
94
113
  requirement: &id006 !ruby/object:Gem::Requirement
114
+ none: false
95
115
  requirements:
96
116
  - - ">="
97
117
  - !ruby/object:Gem::Version
118
+ hash: 3
98
119
  segments:
99
120
  - 0
100
121
  version: "0"
101
122
  type: :development
102
123
  version_requirements: *id006
124
+ - !ruby/object:Gem::Dependency
125
+ name: isolate-scenarios
126
+ prerelease: false
127
+ requirement: &id007 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
136
+ type: :development
137
+ version_requirements: *id007
103
138
  description: A Ruby Puppet DSL
104
139
  email: jesse@railsmachine.com
105
140
  executables:
@@ -112,12 +147,12 @@ extra_rdoc_files:
112
147
  files:
113
148
  - .gitignore
114
149
  - .gitmodules
150
+ - IsolateScenarios
115
151
  - LICENSE
116
152
  - README.rdoc
117
153
  - Rakefile
118
154
  - bin/shadow_puppet
119
155
  - examples/foo.rb
120
- - ginger_scenarios.rb
121
156
  - lib/shadow_puppet.rb
122
157
  - lib/shadow_puppet/core_ext.rb
123
158
  - lib/shadow_puppet/manifest.rb
@@ -141,23 +176,29 @@ rdoc_options:
141
176
  require_paths:
142
177
  - lib
143
178
  required_ruby_version: !ruby/object:Gem::Requirement
179
+ none: false
144
180
  requirements:
145
181
  - - ">="
146
182
  - !ruby/object:Gem::Version
183
+ hash: 3
147
184
  segments:
148
185
  - 0
149
186
  version: "0"
150
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
+ none: false
151
189
  requirements:
152
- - - ">="
190
+ - - ">"
153
191
  - !ruby/object:Gem::Version
192
+ hash: 25
154
193
  segments:
155
- - 0
156
- version: "0"
194
+ - 1
195
+ - 3
196
+ - 1
197
+ version: 1.3.1
157
198
  requirements: []
158
199
 
159
200
  rubyforge_project: moonshine
160
- rubygems_version: 1.3.6
201
+ rubygems_version: 1.3.7
161
202
  signing_key:
162
203
  specification_version: 3
163
204
  summary: A Ruby Puppet DSL
data/ginger_scenarios.rb DELETED
@@ -1,23 +0,0 @@
1
- require 'ginger'
2
-
3
- def create_scenario(version)
4
- scenario = Ginger::Scenario.new("Rails #{version}")
5
- scenario[/^activesupport$/] = version
6
- scenario[/^activerecord$/] = version
7
- scenario[/^actionpack$/] = version
8
- scenario[/^actioncontroller$/] = version
9
- scenario
10
- end
11
-
12
- Ginger.configure do |config|
13
- config.aliases["rails"] = "rails"
14
-
15
- rails_2_3_5 = create_scenario('2.3.5')
16
- rails_2_3_8 = create_scenario('2.3.8')
17
-
18
- rails_3_0_0_beta = create_scenario('3.0.0.beta')
19
- rails_3_0_0_beta3 = create_scenario('3.0.0.beta3')
20
-
21
- config.scenarios << rails_2_3_5 << rails_2_3_8 << rails_3_0_0_beta << rails_3_0_0_beta3
22
- end
23
-