soloist 1.0.0 → 1.0.1

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/.gitignore CHANGED
@@ -4,3 +4,4 @@ pkg/*
4
4
  /.vagrant
5
5
  /examples/cookbooks
6
6
  /examples/tmp
7
+ Gemfile.lock
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm --create use ruby-1.9.3-p327@soloist
1
+ rvm --create use ruby-1.9.3-p392@soloist
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Soloist
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/mkocher/soloist.png)](http://travis-ci.org/mkocher/soloist)
3
+ [![Build Status](https://secure.travis-ci.org/mkocher/soloist.png)](http://travis-ci.org/mkocher/soloist) [![Code Climate](https://codeclimate.com/github/mkocher/soloist.png)](https://codeclimate.com/github/mkocher/soloist)
4
4
 
5
5
  Soloist lets you quickly and easily converge [Chef](http://opscode.com/chef) recipes using [chef-solo](http://wiki.opscode.com/display/chef/Chef+Solo). It does not require a Chef server, but can exploit [community cookbooks](http://community.opscode.com/cookbooks), github-hosted cookbooks and locally-sourced cookbooks through [Librarian](https://github.com/applicationsonline/librarian).
6
6
 
@@ -41,7 +41,7 @@ module Soloist
41
41
 
42
42
  def self.read_config(yaml_file)
43
43
  content = File.read(yaml_file)
44
- YAML.load(content).tap do |hash|
44
+ YAML.load(ERB.new(content).result).tap do |hash|
45
45
  nilable_properties.each do |key|
46
46
  hash.delete(key) if hash[key].nil?
47
47
  end if hash
@@ -1,3 +1,3 @@
1
1
  module Soloist
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/soloist.gemspec CHANGED
@@ -20,9 +20,9 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  s.add_dependency "chef"
23
- s.add_dependency "librarian"
23
+ s.add_dependency "librarian-chef"
24
24
  s.add_dependency "thor"
25
- s.add_dependency "hashie"
25
+ s.add_dependency "hashie", "~> 1.2"
26
26
  s.add_dependency "net-ssh"
27
27
  s.add_dependency "awesome_print"
28
28
 
@@ -151,20 +151,20 @@ describe Soloist::Config do
151
151
  end
152
152
 
153
153
  describe "#merge!" do
154
- let(:soloist_rc) { Soloist::RoyalCrown.new(:recipes => ["guts"], :node_attributes => {:reliable => "maybe"}) }
155
- let(:other_rc) { Soloist::RoyalCrown.new(:recipes => ["chum"], :node_attributes => {:tasty => "maybe"}) }
154
+ let(:soloist_rc) { Soloist::RoyalCrown.new('recipes' => ["guts"], "node_attributes" => {"reliable" => "maybe"}) }
155
+ let(:other_rc) { Soloist::RoyalCrown.new('recipes' => ["chum"], "node_attributes" => {"tasty" => "maybe"}) }
156
156
  let(:other_config) { Soloist::Config.new(other_rc) }
157
157
 
158
158
  it "merges another config into the current one" do
159
159
  config.merge!(other_config)
160
160
  config.royal_crown.recipes.should =~ ["guts", "chum"]
161
- config.royal_crown.node_attributes.keys.should =~ [:reliable, :tasty]
161
+ config.royal_crown.node_attributes.keys.should =~ ["reliable", "tasty"]
162
162
  end
163
163
 
164
164
  it "does not trample the other config" do
165
165
  config.merge!(other_config)
166
166
  other_config.royal_crown.recipes.should =~ ["chum"]
167
- other_config.royal_crown.node_attributes.should == {:tasty => "maybe"}
167
+ other_config.royal_crown.node_attributes.should == {"tasty" => "maybe"}
168
168
  end
169
169
  end
170
170
 
@@ -31,6 +31,28 @@ describe Soloist::RoyalCrown do
31
31
  it "defaults nil fields to an empty primitive" do
32
32
  royal_crown.node_attributes.should == {}
33
33
  end
34
+
35
+ context "when the rc file has ERB tags" do
36
+ let(:tempfile) do
37
+ Tempfile.new("soloist-royalcrown").tap do |file|
38
+ file.write(<<-YAML
39
+ recipes:
40
+ - broken_vim
41
+ node_attributes:
42
+ evaluated: <%= "From ERB" %>
43
+ YAML
44
+ )
45
+ file.close
46
+ end
47
+ end
48
+
49
+ it "evaluates the ERB and parses the resulting YAML" do
50
+ royal_crown.node_attributes.should == {
51
+ "evaluated" => "From ERB"
52
+ }
53
+ royal_crown.recipes.should =~ ["broken_vim"]
54
+ end
55
+ end
34
56
  end
35
57
 
36
58
  describe "#save" do
metadata CHANGED
@@ -1,241 +1,197 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: soloist
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ - 1
9
+ version: 1.0.1
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Matthew Kocher
9
13
  - Doc Ritezel
10
14
  autorequire:
11
15
  bindir: bin
12
16
  cert_chain: []
13
- date: 2013-02-26 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-04-05 00:00:00 -06:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
16
22
  name: chef
17
- requirement: !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
23
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
31
- - !ruby/object:Gem::Dependency
32
- name: librarian
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ! '>='
37
- - !ruby/object:Gem::Version
38
- version: '0'
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
39
31
  type: :runtime
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: librarian-chef
40
35
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- - !ruby/object:Gem::Dependency
48
- name: thor
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 0
42
+ version: "0"
55
43
  type: :runtime
44
+ version_requirements: *id002
45
+ - !ruby/object:Gem::Dependency
46
+ name: thor
56
47
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- - !ruby/object:Gem::Dependency
64
- name: hashie
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
48
+ requirement: &id003 !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ segments:
53
+ - 0
54
+ version: "0"
71
55
  type: :runtime
56
+ version_requirements: *id003
57
+ - !ruby/object:Gem::Dependency
58
+ name: hashie
72
59
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
79
- - !ruby/object:Gem::Dependency
80
- name: net-ssh
81
- requirement: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
60
+ requirement: &id004 !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ segments:
65
+ - 1
66
+ - 2
67
+ version: "1.2"
87
68
  type: :runtime
69
+ version_requirements: *id004
70
+ - !ruby/object:Gem::Dependency
71
+ name: net-ssh
88
72
  prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
96
- name: awesome_print
97
- requirement: !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
73
+ requirement: &id005 !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
79
+ version: "0"
103
80
  type: :runtime
81
+ version_requirements: *id005
82
+ - !ruby/object:Gem::Dependency
83
+ name: awesome_print
104
84
  prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
85
+ requirement: &id006 !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ type: :runtime
93
+ version_requirements: *id006
94
+ - !ruby/object:Gem::Dependency
112
95
  name: rspec
113
- requirement: !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ! '>='
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- type: :development
120
96
  prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
- - - ! '>='
125
- - !ruby/object:Gem::Version
126
- version: '0'
127
- - !ruby/object:Gem::Dependency
128
- name: guard-rspec
129
- requirement: !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ! '>='
133
- - !ruby/object:Gem::Version
134
- version: '0'
97
+ requirement: &id007 !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 0
103
+ version: "0"
135
104
  type: :development
105
+ version_requirements: *id007
106
+ - !ruby/object:Gem::Dependency
107
+ name: guard-rspec
136
108
  prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- - !ruby/object:Gem::Dependency
144
- name: guard-bundler
145
- requirement: !ruby/object:Gem::Requirement
146
- none: false
147
- requirements:
148
- - - ! '>='
149
- - !ruby/object:Gem::Version
150
- version: '0'
109
+ requirement: &id008 !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ segments:
114
+ - 0
115
+ version: "0"
151
116
  type: :development
117
+ version_requirements: *id008
118
+ - !ruby/object:Gem::Dependency
119
+ name: guard-bundler
152
120
  prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
156
- - - ! '>='
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: guard-shell
161
- requirement: !ruby/object:Gem::Requirement
162
- none: false
163
- requirements:
164
- - - ! '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
121
+ requirement: &id009 !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
127
+ version: "0"
167
128
  type: :development
129
+ version_requirements: *id009
130
+ - !ruby/object:Gem::Dependency
131
+ name: guard-shell
168
132
  prerelease: false
169
- version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
- requirements:
172
- - - ! '>='
173
- - !ruby/object:Gem::Version
174
- version: '0'
175
- - !ruby/object:Gem::Dependency
176
- name: rb-fsevent
177
- requirement: !ruby/object:Gem::Requirement
178
- none: false
179
- requirements:
180
- - - ! '>='
181
- - !ruby/object:Gem::Version
182
- version: '0'
133
+ requirement: &id010 !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ segments:
138
+ - 0
139
+ version: "0"
183
140
  type: :development
141
+ version_requirements: *id010
142
+ - !ruby/object:Gem::Dependency
143
+ name: rb-fsevent
184
144
  prerelease: false
185
- version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
- requirements:
188
- - - ! '>='
189
- - !ruby/object:Gem::Version
190
- version: '0'
191
- - !ruby/object:Gem::Dependency
192
- name: terminal-notifier-guard
193
- requirement: !ruby/object:Gem::Requirement
194
- none: false
195
- requirements:
196
- - - ! '>='
197
- - !ruby/object:Gem::Version
198
- version: '0'
145
+ requirement: &id011 !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ segments:
150
+ - 0
151
+ version: "0"
199
152
  type: :development
153
+ version_requirements: *id011
154
+ - !ruby/object:Gem::Dependency
155
+ name: terminal-notifier-guard
200
156
  prerelease: false
201
- version_requirements: !ruby/object:Gem::Requirement
202
- none: false
203
- requirements:
204
- - - ! '>='
205
- - !ruby/object:Gem::Version
206
- version: '0'
207
- - !ruby/object:Gem::Dependency
208
- name: gem-release
209
- requirement: !ruby/object:Gem::Requirement
210
- none: false
211
- requirements:
212
- - - ! '>='
213
- - !ruby/object:Gem::Version
214
- version: '0'
157
+ requirement: &id012 !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ segments:
162
+ - 0
163
+ version: "0"
215
164
  type: :development
165
+ version_requirements: *id012
166
+ - !ruby/object:Gem::Dependency
167
+ name: gem-release
216
168
  prerelease: false
217
- version_requirements: !ruby/object:Gem::Requirement
218
- none: false
219
- requirements:
220
- - - ! '>='
221
- - !ruby/object:Gem::Version
222
- version: '0'
169
+ requirement: &id013 !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ segments:
174
+ - 0
175
+ version: "0"
176
+ type: :development
177
+ version_requirements: *id013
223
178
  description: Makes running chef-solo easy.
224
- email:
179
+ email:
225
180
  - kocher@gmail.com
226
181
  - ritezel@gmail.com
227
- executables:
182
+ executables:
228
183
  - soloist
229
184
  extensions: []
185
+
230
186
  extra_rdoc_files: []
231
- files:
187
+
188
+ files:
232
189
  - .gitignore
233
190
  - .pairs
234
191
  - .rspec
235
192
  - .rvmrc
236
193
  - .travis.yml
237
194
  - Gemfile
238
- - Gemfile.lock
239
195
  - Guardfile
240
196
  - LICENSE
241
197
  - README.md
@@ -263,31 +219,37 @@ files:
263
219
  - spec/lib/soloist/royal_crown_spec.rb
264
220
  - spec/lib/soloist/spotlight_spec.rb
265
221
  - spec/spec_helper.rb
222
+ has_rdoc: true
266
223
  homepage: http://github.com/mkocher/soloist
267
224
  licenses: []
225
+
268
226
  post_install_message:
269
227
  rdoc_options: []
270
- require_paths:
228
+
229
+ require_paths:
271
230
  - lib
272
- required_ruby_version: !ruby/object:Gem::Requirement
273
- none: false
274
- requirements:
275
- - - ! '>='
276
- - !ruby/object:Gem::Version
277
- version: '0'
278
- required_rubygems_version: !ruby/object:Gem::Requirement
279
- none: false
280
- requirements:
281
- - - ! '>='
282
- - !ruby/object:Gem::Version
283
- version: '0'
231
+ required_ruby_version: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ segments:
236
+ - 0
237
+ version: "0"
238
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ segments:
243
+ - 0
244
+ version: "0"
284
245
  requirements: []
246
+
285
247
  rubyforge_project: soloist
286
- rubygems_version: 1.8.24
248
+ rubygems_version: 1.3.6
287
249
  signing_key:
288
250
  specification_version: 3
289
251
  summary: Soloist is a simple way of running chef-solo
290
- test_files:
252
+ test_files:
291
253
  - spec/helpers/net_ssh_test_helper.rb
292
254
  - spec/helpers/net_ssh_test_patch.rb
293
255
  - spec/lib/soloist/cli_spec.rb
data/Gemfile.lock DELETED
@@ -1,131 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- soloist (1.0.0.pre)
5
- awesome_print
6
- chef
7
- hashie
8
- librarian
9
- net-ssh
10
- thor
11
-
12
- GEM
13
- remote: http://rubygems.org/
14
- specs:
15
- archive-tar-minitar (0.5.2)
16
- awesome_print (1.1.0)
17
- bunny (0.7.9)
18
- chef (10.16.2)
19
- bunny (>= 0.6.0, < 0.8.0)
20
- erubis
21
- highline (>= 1.6.9)
22
- json (>= 1.4.4, <= 1.6.1)
23
- mixlib-authentication (>= 1.3.0)
24
- mixlib-cli (>= 1.1.0)
25
- mixlib-config (>= 1.1.2)
26
- mixlib-log (>= 1.3.0)
27
- mixlib-shellout
28
- moneta
29
- net-ssh (~> 2.2.2)
30
- net-ssh-multi (~> 1.1.0)
31
- ohai (>= 0.6.0)
32
- rest-client (>= 1.0.4, < 1.7.0)
33
- treetop (~> 1.4.9)
34
- uuidtools
35
- yajl-ruby (~> 1.1)
36
- coderay (1.0.8)
37
- diff-lcs (1.1.3)
38
- erubis (2.7.0)
39
- gem-release (0.4.1)
40
- guard (1.5.4)
41
- listen (>= 0.4.2)
42
- lumberjack (>= 1.0.2)
43
- pry (>= 0.9.10)
44
- thor (>= 0.14.6)
45
- guard-bundler (1.0.0)
46
- bundler (~> 1.0)
47
- guard (~> 1.1)
48
- guard-rspec (2.2.0)
49
- guard (>= 1.1)
50
- rspec (~> 2.11)
51
- guard-shell (0.5.1)
52
- guard (>= 1.1.0)
53
- hashie (1.2.0)
54
- highline (1.6.15)
55
- ipaddress (0.8.0)
56
- json (1.6.1)
57
- json (1.6.1-java)
58
- librarian (0.0.25)
59
- archive-tar-minitar (>= 0.5.2)
60
- chef (>= 0.10)
61
- highline
62
- thor (~> 0.15)
63
- listen (0.6.0)
64
- lumberjack (1.0.2)
65
- method_source (0.8.1)
66
- mime-types (1.19)
67
- mixlib-authentication (1.3.0)
68
- mixlib-log
69
- mixlib-cli (1.2.2)
70
- mixlib-config (1.1.2)
71
- mixlib-log (1.4.1)
72
- mixlib-shellout (1.1.0)
73
- moneta (0.6.0)
74
- net-ssh (2.2.2)
75
- net-ssh-gateway (1.1.0)
76
- net-ssh (>= 1.99.1)
77
- net-ssh-multi (1.1)
78
- net-ssh (>= 2.1.4)
79
- net-ssh-gateway (>= 0.99.0)
80
- ohai (6.14.0)
81
- ipaddress
82
- mixlib-cli
83
- mixlib-config
84
- mixlib-log
85
- systemu
86
- yajl-ruby
87
- polyglot (0.3.3)
88
- pry (0.9.10)
89
- coderay (~> 1.0.5)
90
- method_source (~> 0.8)
91
- slop (~> 3.3.1)
92
- pry (0.9.10-java)
93
- coderay (~> 1.0.5)
94
- method_source (~> 0.8)
95
- slop (~> 3.3.1)
96
- spoon (~> 0.0)
97
- rb-fsevent (0.9.2)
98
- rest-client (1.6.7)
99
- mime-types (>= 1.16)
100
- rspec (2.12.0)
101
- rspec-core (~> 2.12.0)
102
- rspec-expectations (~> 2.12.0)
103
- rspec-mocks (~> 2.12.0)
104
- rspec-core (2.12.0)
105
- rspec-expectations (2.12.0)
106
- diff-lcs (~> 1.1.3)
107
- rspec-mocks (2.12.0)
108
- slop (3.3.3)
109
- spoon (0.0.1)
110
- systemu (2.5.2)
111
- terminal-notifier-guard (1.5.3)
112
- thor (0.16.0)
113
- treetop (1.4.12)
114
- polyglot
115
- polyglot (>= 0.3.1)
116
- uuidtools (2.1.3)
117
- yajl-ruby (1.1.0)
118
-
119
- PLATFORMS
120
- java
121
- ruby
122
-
123
- DEPENDENCIES
124
- gem-release
125
- guard-bundler
126
- guard-rspec
127
- guard-shell
128
- rb-fsevent
129
- rspec
130
- soloist!
131
- terminal-notifier-guard