ridley 0.7.0.beta → 0.7.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/README.md +51 -54
  2. data/lib/ridley.rb +7 -13
  3. data/lib/ridley/client.rb +251 -0
  4. data/lib/ridley/connection.rb +32 -188
  5. data/lib/ridley/middleware/chef_auth.rb +4 -1
  6. data/lib/ridley/resource.rb +36 -42
  7. data/lib/ridley/resources.rb +3 -0
  8. data/lib/ridley/resources/{client.rb → client_resource.rb} +7 -20
  9. data/lib/ridley/resources/cookbook_resource.rb +121 -0
  10. data/lib/ridley/resources/{data_bag_item.rb → data_bag_item_resource.rb} +52 -63
  11. data/lib/ridley/resources/data_bag_resource.rb +74 -0
  12. data/lib/ridley/resources/encrypted_data_bag_item_resource.rb +55 -0
  13. data/lib/ridley/resources/{environment.rb → environment_resource.rb} +8 -21
  14. data/lib/ridley/resources/{node.rb → node_resource.rb} +24 -37
  15. data/lib/ridley/resources/{role.rb → role_resource.rb} +1 -14
  16. data/lib/ridley/resources/sandbox_resource.rb +86 -0
  17. data/lib/ridley/resources/search.rb +24 -55
  18. data/lib/ridley/sandbox_uploader.rb +118 -0
  19. data/lib/ridley/ssh.rb +2 -2
  20. data/lib/ridley/ssh/worker.rb +2 -1
  21. data/lib/ridley/version.rb +1 -1
  22. data/ridley.gemspec +1 -1
  23. data/spec/acceptance/bootstrapping_spec.rb +1 -1
  24. data/spec/acceptance/client_resource_spec.rb +18 -20
  25. data/spec/acceptance/cookbook_resource_spec.rb +4 -22
  26. data/spec/acceptance/data_bag_item_resource_spec.rb +5 -7
  27. data/spec/acceptance/data_bag_resource_spec.rb +4 -6
  28. data/spec/acceptance/environment_resource_spec.rb +14 -16
  29. data/spec/acceptance/node_resource_spec.rb +12 -14
  30. data/spec/acceptance/role_resource_spec.rb +13 -15
  31. data/spec/acceptance/sandbox_resource_spec.rb +7 -9
  32. data/spec/acceptance/search_resource_spec.rb +6 -8
  33. data/spec/support/shared_examples/ridley_resource.rb +23 -22
  34. data/spec/unit/ridley/client_spec.rb +153 -0
  35. data/spec/unit/ridley/connection_spec.rb +8 -221
  36. data/spec/unit/ridley/resources/{client_spec.rb → client_resource_spec.rb} +4 -4
  37. data/spec/unit/ridley/resources/cookbook_resource_spec.rb +5 -0
  38. data/spec/unit/ridley/resources/{data_bag_item_spec.rb → data_bag_item_resource_spec.rb} +2 -2
  39. data/spec/unit/ridley/resources/{data_bag_spec.rb → data_bag_resource_spec.rb} +3 -3
  40. data/spec/unit/ridley/resources/{environment_spec.rb → environment_resource_spec.rb} +4 -4
  41. data/spec/unit/ridley/resources/{node_spec.rb → node_resource_spec.rb} +4 -4
  42. data/spec/unit/ridley/resources/{role_spec.rb → role_resource_spec.rb} +3 -3
  43. data/spec/unit/ridley/resources/sandbox_resource_spec.rb +172 -0
  44. data/spec/unit/ridley/resources/search_spec.rb +34 -30
  45. data/spec/unit/ridley/sandbox_uploader_spec.rb +99 -0
  46. data/spec/unit/ridley/ssh_spec.rb +2 -2
  47. data/spec/unit/ridley_spec.rb +4 -12
  48. metadata +36 -28
  49. data/lib/ridley/dsl.rb +0 -58
  50. data/lib/ridley/resources/cookbook.rb +0 -51
  51. data/lib/ridley/resources/data_bag.rb +0 -81
  52. data/lib/ridley/resources/encrypted_data_bag_item.rb +0 -54
  53. data/lib/ridley/resources/sandbox.rb +0 -154
  54. data/spec/unit/ridley/resources/cookbook_spec.rb +0 -5
@@ -1,7 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Ridley::Search do
4
- let(:connection) { double('connection') }
3
+ describe Ridley::Search do\
4
+ let(:client) do
5
+ double('client',
6
+ connection: double('connection')
7
+ )
8
+ end
5
9
  let(:index) { :role }
6
10
  let(:query) { "*:*" }
7
11
  let(:response) do
@@ -19,21 +23,21 @@ describe Ridley::Search do
19
23
  subject { Ridley::Search }
20
24
 
21
25
  describe "::indexes" do
22
- it "sends a get request to the connection to receive the indexes" do
23
- connection.should_receive(:get).with("search").and_return(response)
26
+ it "sends a get request to the client to receive the indexes" do
27
+ client.connection.should_receive(:get).with("search").and_return(response)
24
28
 
25
- subject.indexes(connection)
29
+ subject.indexes(client)
26
30
  end
27
31
  end
28
32
  end
29
33
 
30
34
  describe "#run" do
31
35
  subject do
32
- Ridley::Search.new(connection, index, query)
36
+ Ridley::Search.new(client, index, query)
33
37
  end
34
38
 
35
- it "sends a get request to the connection to the index's location with the given query" do
36
- connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
39
+ it "sends a get request to the client to the index's location with the given query" do
40
+ client.connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
37
41
 
38
42
  subject.run
39
43
  end
@@ -42,8 +46,8 @@ describe Ridley::Search do
42
46
  let(:sort) { "DESC" }
43
47
  before(:each) { subject.sort = sort }
44
48
 
45
- it "sends a get request to the connection with a query parameter for 'set'" do
46
- connection.should_receive(:get).with("search/#{index}", q: query, sort: sort).and_return(response)
49
+ it "sends a get request to the client with a query parameter for 'set'" do
50
+ client.connection.should_receive(:get).with("search/#{index}", q: query, sort: sort).and_return(response)
47
51
 
48
52
  subject.run
49
53
  end
@@ -53,8 +57,8 @@ describe Ridley::Search do
53
57
  let(:start) { 1 }
54
58
  before(:each) { subject.start = start }
55
59
 
56
- it "sends a get request to the connection with a query parameter for 'start'" do
57
- connection.should_receive(:get).with("search/#{index}", q: query, start: start).and_return(response)
60
+ it "sends a get request to the client with a query parameter for 'start'" do
61
+ client.connection.should_receive(:get).with("search/#{index}", q: query, start: start).and_return(response)
58
62
 
59
63
  subject.run
60
64
  end
@@ -64,8 +68,8 @@ describe Ridley::Search do
64
68
  let(:rows) { 1 }
65
69
  before(:each) { subject.rows = rows }
66
70
 
67
- it "sends a get request to the connection with a query parameter for 'rows'" do
68
- connection.should_receive(:get).with("search/#{index}", q: query, rows: rows).and_return(response)
71
+ it "sends a get request to the client with a query parameter for 'rows'" do
72
+ client.connection.should_receive(:get).with("search/#{index}", q: query, rows: rows).and_return(response)
69
73
 
70
74
  subject.run
71
75
  end
@@ -99,14 +103,14 @@ describe Ridley::Search do
99
103
  )
100
104
  end
101
105
 
102
- subject { Ridley::Search.new(connection, index, query) }
106
+ subject { Ridley::Search.new(client, index, query) }
103
107
 
104
- it "returns an array of Ridley::Node" do
105
- connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
108
+ it "returns an array of Ridley::NodeResource" do
109
+ client.connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
106
110
  result = subject.run
107
111
 
108
112
  result.should be_a(Array)
109
- result.should each be_a(Ridley::Node)
113
+ result.should each be_a(Ridley::NodeResource)
110
114
  end
111
115
  end
112
116
 
@@ -134,14 +138,14 @@ describe Ridley::Search do
134
138
  )
135
139
  end
136
140
 
137
- subject { Ridley::Search.new(connection, index, query) }
141
+ subject { Ridley::Search.new(client, index, query) }
138
142
 
139
- it "returns an array of Ridley::Role" do
140
- connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
143
+ it "returns an array of Ridley::RoleResource" do
144
+ client.connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
141
145
  result = subject.run
142
146
 
143
147
  result.should be_a(Array)
144
- result.should each be_a(Ridley::Role)
148
+ result.should each be_a(Ridley::RoleResource)
145
149
  end
146
150
  end
147
151
 
@@ -168,14 +172,14 @@ describe Ridley::Search do
168
172
  )
169
173
  end
170
174
 
171
- subject { Ridley::Search.new(connection, index, query) }
175
+ subject { Ridley::Search.new(client, index, query) }
172
176
 
173
- it "returns an array of Ridley::Environment" do
174
- connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
177
+ it "returns an array of Ridley::EnvironmentResource" do
178
+ client.connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
175
179
  result = subject.run
176
180
 
177
181
  result.should be_a(Array)
178
- result.should each be_a(Ridley::Environment)
182
+ result.should each be_a(Ridley::EnvironmentResource)
179
183
  end
180
184
  end
181
185
 
@@ -203,14 +207,14 @@ describe Ridley::Search do
203
207
  )
204
208
  end
205
209
 
206
- subject { Ridley::Search.new(connection, index, query) }
210
+ subject { Ridley::Search.new(client, index, query) }
207
211
 
208
- it "returns an array of Ridley::Client" do
209
- connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
212
+ it "returns an array of Ridley::ClientResource" do
213
+ client.connection.should_receive(:get).with("search/#{index}", q: query).and_return(response)
210
214
  result = subject.run
211
215
 
212
216
  result.should be_a(Array)
213
- result.should each be_a(Ridley::Client)
217
+ result.should each be_a(Ridley::ClientResource)
214
218
  end
215
219
  end
216
220
  end
@@ -0,0 +1,99 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ridley::SandboxUploader do
4
+ let(:client) do
5
+ double('client',
6
+ client_name: 'reset',
7
+ client_key: fixtures_path.join('reset.pem')
8
+ )
9
+ end
10
+
11
+ let(:checksums) do
12
+ {
13
+ "oGCPHrQ+5MylEL+V+NIJ9w==" => {
14
+ needs_upload: true,
15
+ url: "https://api.opscode.com/organizations/vialstudios/sandboxes/bd091b150b0a4578b97771af6abf3e05"
16
+ }
17
+ }
18
+ end
19
+
20
+ let(:sandbox) do
21
+ Ridley::SandboxResource.new(client, checksums: checksums)
22
+ end
23
+
24
+ describe "ClassMethods" do
25
+ subject { described_class }
26
+ describe "::upload" do
27
+ it "terminates the uploader after upload" do
28
+ uploader = double('uploader', alive?: true)
29
+ Ridley::SandboxUploader.should_receive(:pool).with(size: 12, args: [sandbox]).and_return(uploader)
30
+ uploader.should_receive(:multi_upload).with(checksums)
31
+ uploader.should_receive(:terminate)
32
+
33
+ subject.upload(sandbox, checksums)
34
+ end
35
+ end
36
+
37
+ describe "::checksum" do
38
+ it "returns a string" do
39
+ subject.checksum(fixtures_path.join('reset.pem')).should be_a(String)
40
+ end
41
+ end
42
+
43
+ describe "::checksum64" do
44
+ it "returns a string" do
45
+ subject.checksum64(fixtures_path.join('reset.pem')).should be_a(String)
46
+ end
47
+ end
48
+ end
49
+
50
+ subject { described_class.new(sandbox) }
51
+
52
+ describe "#multi_upload" do
53
+ it "sends an upload command for each pair of checksum/path" do
54
+ subject.should_receive(:upload).with(checksums.first[0], checksums.first[1])
55
+
56
+ subject.multi_upload(checksums)
57
+ end
58
+ end
59
+
60
+ describe "#upload" do
61
+ let(:chk_id) { "oGCPHrQ+5MylEL+V+NIJ9w==" }
62
+ let(:path) { fixtures_path.join('reset.pem').to_s }
63
+
64
+ context "when the checksum needs uploading" do
65
+ let(:checksums) do
66
+ {
67
+ chk_id => {
68
+ url: "https://api.opscode.com/organizations/vialstudios/sandboxes/bd091b150b0a4578b97771af6abf3e05",
69
+ needs_upload: true
70
+ }
71
+ }
72
+ end
73
+
74
+ it "uploads each checksum to their target URL" do
75
+ stub_request(:put, checksums[chk_id][:url])
76
+
77
+ subject.upload(chk_id, path)
78
+ end
79
+ end
80
+
81
+ context "when the checksum doesn't need uploading" do
82
+ let(:checksums) do
83
+ {
84
+ chk_id => {
85
+ needs_upload: false
86
+ }
87
+ }
88
+ end
89
+
90
+ let(:sandbox) do
91
+ Ridley::SandboxResource.new(client, checksums: checksums)
92
+ end
93
+
94
+ it "returns nil" do
95
+ subject.upload(chk_id, path).should be_nil
96
+ end
97
+ end
98
+ end
99
+ end
@@ -4,11 +4,11 @@ describe Ridley::SSH do
4
4
  let(:connection) { double('conn', ssh: { user: "vagrant", password: "vagrant" }) }
5
5
 
6
6
  let(:node_one) do
7
- Ridley::Node.new(connection, automatic: { cloud: { public_hostname: "33.33.33.10" } })
7
+ Ridley::NodeResource.new(connection, automatic: { cloud: { public_hostname: "33.33.33.10" } })
8
8
  end
9
9
 
10
10
  let(:node_two) do
11
- Ridley::Node.new(connection, automatic: { cloud: { public_hostname: "33.33.33.11" } })
11
+ Ridley::NodeResource.new(connection, automatic: { cloud: { public_hostname: "33.33.33.11" } })
12
12
  end
13
13
 
14
14
  describe "ClassMethods" do
@@ -6,20 +6,12 @@ describe Ridley do
6
6
  describe "ClassMethods" do
7
7
  subject { Ridley }
8
8
 
9
- describe "::sync" do
10
- it "delegates to Ridley::Connection.sync" do
11
- Ridley::Connection.should_receive(:sync).with(config)
12
-
13
- subject.sync(config) do; end
14
- end
15
- end
16
-
17
- describe "::connection" do
9
+ describe "::new" do
18
10
  it "creates a new Ridley::Connection" do
19
- conn = double('conn')
20
- Ridley::Connection.should_receive(:new).with(config).and_return(conn)
11
+ client = double('client')
12
+ Ridley::Client.should_receive(:new).with(config).and_return(client)
21
13
 
22
- subject.connection(config).should eql(conn)
14
+ subject.new(config).should eql(client)
23
15
  end
24
16
  end
25
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.beta
4
+ version: 0.7.0.rc1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-11 00:00:00.000000000 Z
12
+ date: 2013-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 0.8.4
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
- version: '0'
125
+ version: 0.8.4
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: activesupport
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -223,8 +223,8 @@ files:
223
223
  - lib/ridley/bootstrapper.rb
224
224
  - lib/ridley/bootstrapper/context.rb
225
225
  - lib/ridley/chain_link.rb
226
+ - lib/ridley/client.rb
226
227
  - lib/ridley/connection.rb
227
- - lib/ridley/dsl.rb
228
228
  - lib/ridley/errors.rb
229
229
  - lib/ridley/log.rb
230
230
  - lib/ridley/logging.rb
@@ -233,16 +233,18 @@ files:
233
233
  - lib/ridley/middleware/chef_response.rb
234
234
  - lib/ridley/middleware/parse_json.rb
235
235
  - lib/ridley/resource.rb
236
- - lib/ridley/resources/client.rb
237
- - lib/ridley/resources/cookbook.rb
238
- - lib/ridley/resources/data_bag.rb
239
- - lib/ridley/resources/data_bag_item.rb
240
- - lib/ridley/resources/encrypted_data_bag_item.rb
241
- - lib/ridley/resources/environment.rb
242
- - lib/ridley/resources/node.rb
243
- - lib/ridley/resources/role.rb
244
- - lib/ridley/resources/sandbox.rb
236
+ - lib/ridley/resources.rb
237
+ - lib/ridley/resources/client_resource.rb
238
+ - lib/ridley/resources/cookbook_resource.rb
239
+ - lib/ridley/resources/data_bag_item_resource.rb
240
+ - lib/ridley/resources/data_bag_resource.rb
241
+ - lib/ridley/resources/encrypted_data_bag_item_resource.rb
242
+ - lib/ridley/resources/environment_resource.rb
243
+ - lib/ridley/resources/node_resource.rb
244
+ - lib/ridley/resources/role_resource.rb
245
+ - lib/ridley/resources/sandbox_resource.rb
245
246
  - lib/ridley/resources/search.rb
247
+ - lib/ridley/sandbox_uploader.rb
246
248
  - lib/ridley/ssh.rb
247
249
  - lib/ridley/ssh/response.rb
248
250
  - lib/ridley/ssh/response_set.rb
@@ -270,20 +272,23 @@ files:
270
272
  - spec/support/spec_helpers.rb
271
273
  - spec/unit/ridley/bootstrapper/context_spec.rb
272
274
  - spec/unit/ridley/bootstrapper_spec.rb
275
+ - spec/unit/ridley/client_spec.rb
273
276
  - spec/unit/ridley/connection_spec.rb
274
277
  - spec/unit/ridley/errors_spec.rb
275
278
  - spec/unit/ridley/middleware/chef_auth_spec.rb
276
279
  - spec/unit/ridley/middleware/chef_response_spec.rb
277
280
  - spec/unit/ridley/middleware/parse_json_spec.rb
278
281
  - spec/unit/ridley/resource_spec.rb
279
- - spec/unit/ridley/resources/client_spec.rb
280
- - spec/unit/ridley/resources/cookbook_spec.rb
281
- - spec/unit/ridley/resources/data_bag_item_spec.rb
282
- - spec/unit/ridley/resources/data_bag_spec.rb
283
- - spec/unit/ridley/resources/environment_spec.rb
284
- - spec/unit/ridley/resources/node_spec.rb
285
- - spec/unit/ridley/resources/role_spec.rb
282
+ - spec/unit/ridley/resources/client_resource_spec.rb
283
+ - spec/unit/ridley/resources/cookbook_resource_spec.rb
284
+ - spec/unit/ridley/resources/data_bag_item_resource_spec.rb
285
+ - spec/unit/ridley/resources/data_bag_resource_spec.rb
286
+ - spec/unit/ridley/resources/environment_resource_spec.rb
287
+ - spec/unit/ridley/resources/node_resource_spec.rb
288
+ - spec/unit/ridley/resources/role_resource_spec.rb
289
+ - spec/unit/ridley/resources/sandbox_resource_spec.rb
286
290
  - spec/unit/ridley/resources/search_spec.rb
291
+ - spec/unit/ridley/sandbox_uploader_spec.rb
287
292
  - spec/unit/ridley/ssh/response_set_spec.rb
288
293
  - spec/unit/ridley/ssh/worker_spec.rb
289
294
  - spec/unit/ridley/ssh_spec.rb
@@ -335,20 +340,23 @@ test_files:
335
340
  - spec/support/spec_helpers.rb
336
341
  - spec/unit/ridley/bootstrapper/context_spec.rb
337
342
  - spec/unit/ridley/bootstrapper_spec.rb
343
+ - spec/unit/ridley/client_spec.rb
338
344
  - spec/unit/ridley/connection_spec.rb
339
345
  - spec/unit/ridley/errors_spec.rb
340
346
  - spec/unit/ridley/middleware/chef_auth_spec.rb
341
347
  - spec/unit/ridley/middleware/chef_response_spec.rb
342
348
  - spec/unit/ridley/middleware/parse_json_spec.rb
343
349
  - spec/unit/ridley/resource_spec.rb
344
- - spec/unit/ridley/resources/client_spec.rb
345
- - spec/unit/ridley/resources/cookbook_spec.rb
346
- - spec/unit/ridley/resources/data_bag_item_spec.rb
347
- - spec/unit/ridley/resources/data_bag_spec.rb
348
- - spec/unit/ridley/resources/environment_spec.rb
349
- - spec/unit/ridley/resources/node_spec.rb
350
- - spec/unit/ridley/resources/role_spec.rb
350
+ - spec/unit/ridley/resources/client_resource_spec.rb
351
+ - spec/unit/ridley/resources/cookbook_resource_spec.rb
352
+ - spec/unit/ridley/resources/data_bag_item_resource_spec.rb
353
+ - spec/unit/ridley/resources/data_bag_resource_spec.rb
354
+ - spec/unit/ridley/resources/environment_resource_spec.rb
355
+ - spec/unit/ridley/resources/node_resource_spec.rb
356
+ - spec/unit/ridley/resources/role_resource_spec.rb
357
+ - spec/unit/ridley/resources/sandbox_resource_spec.rb
351
358
  - spec/unit/ridley/resources/search_spec.rb
359
+ - spec/unit/ridley/sandbox_uploader_spec.rb
352
360
  - spec/unit/ridley/ssh/response_set_spec.rb
353
361
  - spec/unit/ridley/ssh/worker_spec.rb
354
362
  - spec/unit/ridley/ssh_spec.rb
@@ -1,58 +0,0 @@
1
- module Ridley
2
- # @api public
3
- # @author Jamie Winsor <jamie@vialstudios.com>
4
- #
5
- # A DSL to be included into Ridley::Connection. Instance functions of the same name as
6
- # Chef a resource are coerced into class functions of a class of the same name.
7
- #
8
- # This is accomplished by returning a Ridley::Context object and coercing any messages sent
9
- # to it into a message to the Chef resource's class in Ridley.
10
- #
11
- # @example
12
- # class Connection
13
- # include Ridley::DSL
14
- # end
15
- #
16
- # connection = Ridley::Connection.new
17
- # connection.role.all
18
- #
19
- # The 'role' function is made available to the instance of Ridley::Connection by including
20
- # Ridley::DSL. This function returns a Ridley::Context object which receives the 'all' message.
21
- # The Ridley::Context coerces the 'all' message into a message to the Ridley::Role class and
22
- # sends along the instance of Ridley::Connection that is chaining 'role.all'
23
- #
24
- # connection.role.all => Ridley::Role.all(connection)
25
- #
26
- # Any additional arguments will also be passed to the class function of the Chef resource's class
27
- #
28
- # connection.role.find("reset") => Ridley::Role.find(connection, "reset")
29
- #
30
- # @example instantiating new resources
31
- # class connection
32
- # include Ridley::DSL
33
- # end
34
- #
35
- # connection = Ridley::Connection.new
36
- # connection.role.new(name: "hello") => <#Ridley::Role: @name="hello">
37
- #
38
- # New instances of resources can be instantiated by calling new on the Ridley::Context. These messages
39
- # will be send to the Chef resource's class in Ridley and can be treated as a normal Ruby object. Each
40
- # instantiated object will have the connection information contained within so you can do things like
41
- # save a role after changing it's attributes.
42
- #
43
- # r = connection.role.new(name: "new-role")
44
- # r.name => "new-role"
45
- # r.name = "other-name"
46
- # r.save
47
- #
48
- # connection.role.find("new-role") => <#Ridley::Role: @name="new-role">
49
- #
50
- # @see Ridley::Context
51
- # @see Ridley::Role
52
- # @see Ridley::Connection
53
- module DSL; end
54
- end
55
-
56
- Dir["#{File.dirname(__FILE__)}/resources/*.rb"].sort.each do |path|
57
- require "ridley/resources/#{File.basename(path, '.rb')}"
58
- end