torquespec 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ require 'pathname'
2
+ require 'fileutils'
3
+ require 'yaml'
4
+
5
+ module TorqueSpec
6
+
7
+ class DeploymentDescriptor
8
+ def initialize(descriptor, name)
9
+ @descriptor = descriptor
10
+ @path = Pathname.new( name.gsub(/\W/,'_') + "-knob.yml" ).expand_path( TorqueSpec.knob_root )
11
+ end
12
+ def path
13
+ hash || filename || heredoc
14
+ end
15
+ def hash
16
+ if @descriptor.is_a? Hash
17
+ File.open( @path, 'w' ) do |file|
18
+ YAML.dump( stringify_keys(@descriptor), file )
19
+ end
20
+ @path.to_s
21
+ end
22
+ end
23
+ def filename
24
+ filename = Pathname.new(@descriptor).expand_path( TorqueSpec.knob_root )
25
+ if filename.exist?
26
+ filename.to_s
27
+ end
28
+ end
29
+ def heredoc
30
+ File.open( @path, 'w' ) do |file|
31
+ file.write(@descriptor)
32
+ end
33
+ @path.to_s
34
+ end
35
+ def stringify_keys(x)
36
+ x.is_a?(Hash) ? x.inject({}) {|h,(k,v)| h[k.to_s] = stringify_keys(v); h} : x
37
+ end
38
+ end
39
+
40
+ end
41
+
@@ -1,11 +1,16 @@
1
- require 'pathname'
1
+ require 'torquespec/deployment_descriptor'
2
2
 
3
3
  module TorqueSpec
4
4
 
5
- def deploy(*paths)
5
+ # Accepts any combination of hashes, filenames, or heredocs
6
+ def deploy(*descriptors)
7
+ paths = descriptors.map do |descriptor|
8
+ DeploymentDescriptor.new(descriptor, self.display_name).path
9
+ end
6
10
  metaclass = class << self; self; end
7
11
  metaclass.send(:define_method, :deploy_paths) do
8
- paths.map {|p| Pathname.new(p).absolute? ? p : File.join(TorqueSpec.knob_root, p) }
12
+ FileUtils.mkdir_p(TorqueSpec.knob_root) unless File.exist?(TorqueSpec.knob_root)
13
+ paths
9
14
  end
10
15
  end
11
16
 
@@ -23,6 +28,7 @@ end
23
28
 
24
29
  # Default TorqueSpec options
25
30
  TorqueSpec.configure do |config|
31
+ config.knob_root = ".torquespec"
26
32
  config.lazy = true
27
33
  config.host = 'localhost'
28
34
  config.port = 8080
@@ -1,3 +1,3 @@
1
1
  module TorqueSpec
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torquespec
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jim Crossley
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-26 00:00:00 -04:00
19
+ date: 2011-04-30 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -47,6 +47,7 @@ files:
47
47
  - README.md
48
48
  - Rakefile
49
49
  - lib/torquespec.rb
50
+ - lib/torquespec/deployment_descriptor.rb
50
51
  - lib/torquespec/rspec.rb
51
52
  - lib/torquespec/server.rb
52
53
  - lib/torquespec/torquespec.rb