shadow_puppet 0.3.3 → 0.4.0.beta1

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.
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
-