ocs 0.0.3 → 0.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6da46759c59ec08d60abe0a7358887705f839e7
4
- data.tar.gz: 7217eb402e0296c33ec120894d47d159d29580e1
3
+ metadata.gz: f8c215e6924e10df79b386df078dc3d8a29b4674
4
+ data.tar.gz: afef6522a19430d1311ef964dd5abb24fbb6268a
5
5
  SHA512:
6
- metadata.gz: b3d16cf65976c49fd941791310ef25643c6cf65ffd165a0092d03da4fd9d2d066ed0e112f0a66f29e46867ff1e6ac8dbff4d4f29d0917d3c482fb619d1a0b5b3
7
- data.tar.gz: 3eb54aec380a44afc512ec3a8c1eb7af0695b54989fdd15bb62a36a1960140e8c1ab8960513c864128631c24f24d6a2239e204cd57edf9d2887db09c96a613d5
6
+ metadata.gz: 5bd0b3b9d4bc4ce58a8fba98faa8f15fbad18caa8a22f302b290c49b4f6ab05bae9aa948262130b02b30f917b2abcb380b984739acd035a45f8014caf1a972a6
7
+ data.tar.gz: dfda45f337a17f60d9011c155023f4ebffbb5cf2ce2e2786ee60074f84f4d0869551c8ddd9b8cfd50d064b13d2786bff3e20af82d0ba495d61db049eb9919861
@@ -0,0 +1,278 @@
1
+ Resouces
2
+ ========
3
+
4
+ ## Account
5
+ ### Attributes
6
+
7
+ Attribute | Type
8
+ ---|---
9
+ name | String
10
+
11
+ ## Address
12
+ ### Attributes
13
+
14
+ Attribute | Type
15
+ ---|---
16
+
17
+ ## AffinityGroup
18
+ ### Attributes
19
+
20
+ Attribute | Type
21
+ ---|---
22
+
23
+ ## AsyncJob
24
+ ### Attributes
25
+
26
+ Attribute | Type
27
+ ---|---
28
+ jobid | String
29
+ jobstatus | Integer
30
+
31
+ ## Base
32
+ ### Attributes
33
+
34
+ Attribute | Type
35
+ ---|---
36
+
37
+ ## DiskOffering
38
+ ### Attributes
39
+
40
+ Attribute | Type
41
+ ---|---
42
+ name | String
43
+
44
+ ## Domain
45
+ ### Attributes
46
+
47
+ Attribute | Type
48
+ ---|---
49
+ haschild | [TrueClass, FalseClass]
50
+ level | Integer
51
+ name | String
52
+ path | String
53
+
54
+ ## Group
55
+ ### Attributes
56
+
57
+ Attribute | Type
58
+ ---|---
59
+ name | String
60
+
61
+ ## Host
62
+ ### Attributes
63
+
64
+ Attribute | Type
65
+ ---|---
66
+ name | String
67
+
68
+ ## Iso
69
+ ### Attributes
70
+
71
+ Attribute | Type
72
+ ---|---
73
+ displaytext | String
74
+ name | String
75
+
76
+ ## Network
77
+ ### Attributes
78
+
79
+ Attribute | Type
80
+ ---|---
81
+ account | String
82
+ aclid | String
83
+ acltype | String
84
+ broadcastdomaintype | String
85
+ broadcasturi | String
86
+ canusefordeploy | [TrueClass, FalseClass]
87
+ cidr | String
88
+ displaynetwork | [TrueClass, FalseClass]
89
+ displaytext | String
90
+ dns1 | String
91
+ dns2 | String
92
+ gateway | String
93
+ ip6cidr | String
94
+ ip6gateway | String
95
+ isdefault | [TrueClass, FalseClass]
96
+ ispersistent | [TrueClass, FalseClass]
97
+ issystem | [TrueClass, FalseClass]
98
+ name | String
99
+ netmask | String
100
+ networkcidr | String
101
+ networkdomain | String
102
+ networkofferingavailability | String
103
+ networkofferingconservemode | [TrueClass, FalseClass]
104
+ networkofferingdisplaytext | String
105
+ networkofferingid | String
106
+ networkofferingname | String
107
+ physicalnetworkid | String
108
+ related | String
109
+ reservediprange | String
110
+ restartrequired | [TrueClass, FalseClass]
111
+ service | Array
112
+ specifyipranges | [TrueClass, FalseClass]
113
+ state | String
114
+ subdomainaccess | [TrueClass, FalseClass]
115
+ traffictype | String
116
+ type | String
117
+ vlan | String
118
+ vpcid | String
119
+
120
+ ## Nic
121
+ ### Attributes
122
+
123
+ Attribute | Type
124
+ ---|---
125
+ broadcasturi | String
126
+ gateway | String
127
+ ipaddress | String
128
+ isdefault | [TrueClass, FalseClass]
129
+ isolationuri | String
130
+ macaddress | String
131
+ netmask | String
132
+ networkid | String
133
+ networkname | String
134
+ traffictype | String
135
+ type | String
136
+
137
+ ## OsType
138
+ ### Attributes
139
+
140
+ Attribute | Type
141
+ ---|---
142
+ description | String
143
+
144
+ ## ResourceDetail
145
+ ### Attributes
146
+
147
+ Attribute | Type
148
+ ---|---
149
+ type | String
150
+
151
+ ## SecurityGroup
152
+ ### Attributes
153
+
154
+ Attribute | Type
155
+ ---|---
156
+
157
+ ## ServiceOffering
158
+ ### Attributes
159
+
160
+ Attribute | Type
161
+ ---|---
162
+ cpunumber | Integer
163
+ cpuspeed | Integer
164
+ created | String
165
+ defaultuse | [TrueClass, FalseClass]
166
+ deploymentplanner | String
167
+ diskBytesReadRate | Integer
168
+ diskBytesWriteRate | Integer
169
+ diskIopsReadRate | Integer
170
+ diskIopsWriteRate | Integer
171
+ displaytext | String
172
+ hosttags | String
173
+ iscustomized | [TrueClass, FalseClass]
174
+ issystem | [TrueClass, FalseClass]
175
+ isvolatile | [TrueClass, FalseClass]
176
+ limitcpuuse | [TrueClass, FalseClass]
177
+ memory | Integer
178
+ name | String
179
+ networkrate | Integer
180
+ offerha | [TrueClass, FalseClass]
181
+ serviceofferingdetails | Hash
182
+ storagetype | String
183
+ systemvmtype | String
184
+ tags | String
185
+
186
+ ## SshKeyPair
187
+ ### Attributes
188
+
189
+ Attribute | Type
190
+ ---|---
191
+ fingerprint | String
192
+ name | String
193
+
194
+ ## Tag
195
+ ### Attributes
196
+
197
+ Attribute | Type
198
+ ---|---
199
+ key | String
200
+ value | String
201
+ resourcetype | String
202
+
203
+ ## Template
204
+ ### Attributes
205
+
206
+ Attribute | Type
207
+ ---|---
208
+ bootable | [TrueClass, FalseClass]
209
+ checksum | String
210
+ created | String
211
+ crossZones | [TrueClass, FalseClass]
212
+ details | Hash
213
+ displaytext | String
214
+ format | String
215
+ hypervisor | String
216
+ isdynamicallyscalable | [TrueClass, FalseClass]
217
+ isextractable | [TrueClass, FalseClass]
218
+ isfeatured | [TrueClass, FalseClass]
219
+ ispublic | [TrueClass, FalseClass]
220
+ isready | [TrueClass, FalseClass]
221
+ name | String
222
+ passwordenabled | [TrueClass, FalseClass]
223
+ removed | [TrueClass, FalseClass]
224
+ size | Integer
225
+ sshkeyenabled | [TrueClass, FalseClass]
226
+ status | String
227
+ templatetag | String
228
+ templatetype | String
229
+
230
+ ## VirtualMachine
231
+ ### Attributes
232
+
233
+ Attribute | Type
234
+ ---|---
235
+ cpunumber | Integer
236
+ cpuspeed | Integer
237
+ cpuused | String
238
+ created | String
239
+ displayname | String
240
+ displayvm | [TrueClass, FalseClass]
241
+ haenable | [TrueClass, FalseClass]
242
+ hypervisor | String
243
+ instancename | String
244
+ isdynamicallyscalable | [TrueClass, FalseClass]
245
+ memory | Integer
246
+ name | String
247
+ networkkbsread | Integer
248
+ networkkbswrite | Integer
249
+ passwordenabled | [TrueClass, FalseClass]
250
+ rootdeviceid | Integer
251
+ rootdevicetype | String
252
+ state | String
253
+
254
+ ## Zone
255
+ ### Attributes
256
+
257
+ Attribute | Type
258
+ ---|---
259
+ allocationstate | String
260
+ capacity | Hash
261
+ description | String
262
+ dhcpprovider | String
263
+ displaytext | String
264
+ dns1 | String
265
+ dns2 | String
266
+ guestcidraddress | String
267
+ internaldns1 | String
268
+ internaldns2 | String
269
+ ip6dns1 | String
270
+ ip6dns2 | String
271
+ localstorageenabled | [TrueClass, FalseClass]
272
+ name | String
273
+ networktype | String
274
+ resourcedetails | Hash
275
+ securitygroupsenabled | [TrueClass, FalseClass]
276
+ vlan | String
277
+ zonetoken | String
278
+
data/lib/ocs.rb CHANGED
@@ -10,9 +10,9 @@ require "faraday"
10
10
  require "faraday_middleware"
11
11
 
12
12
  module Ocs
13
- class OcsError < StandardError; end
14
13
  end
15
14
 
15
+ require "ocs/errors"
16
16
  require "ocs/api_error"
17
17
  require "ocs/client"
18
18
  require "ocs/request"
@@ -54,7 +54,7 @@ module Ocs
54
54
 
55
55
  raw_resource_name, *arguments = args
56
56
  resource_name = raw_resource_name.to_s.singularize
57
- if Resources.const_defined?(resource_name.camelize)
57
+ if Ocs::Resources.const_defined?(resource_name.camelize)
58
58
  return resource_class(resource_name).public_send(method, self, *arguments)
59
59
  end
60
60
 
@@ -0,0 +1,111 @@
1
+ require "active_support/core_ext/class/attribute"
2
+ require "active_support/core_ext/string/inflections"
3
+ require "erubis"
4
+
5
+ module Ocs
6
+ module Document
7
+ class Generator
8
+ class_attribute :resources
9
+ self.resources = {}
10
+
11
+ class << self
12
+ def documents_path
13
+ File.expand_path("../../../../docs", __FILE__)
14
+ end
15
+
16
+ def library_path
17
+ File.expand_path("../../../", __FILE__)
18
+ end
19
+
20
+ def ocs_path
21
+ File.join(library_path, "ocs")
22
+ end
23
+
24
+ def patches_path
25
+ File.join(ocs_path, "document/patches")
26
+ end
27
+
28
+ def resources_path
29
+ File.join(ocs_path, "resources")
30
+ end
31
+
32
+ def resource_paths
33
+ Dir[File.join(resources_path, "*.rb")]
34
+ end
35
+ end
36
+
37
+ def initialize
38
+
39
+ end
40
+
41
+ def generate
42
+ require "ocs/errors"
43
+ Patches.patch("ocs/resources/base")
44
+ self.class.resource_paths.each do |resource|
45
+ name = resource.sub(/^.+\//, "").sub(/\.rb$/, "").camelize
46
+ self.class.resources[name] = {}
47
+ require resource
48
+ end
49
+ output
50
+ end
51
+
52
+ private
53
+
54
+ def output
55
+ output_resources
56
+ end
57
+
58
+ def output_resources
59
+ File.write(File.join(self.class.documents_path, "resources.md"), resources_markdown)
60
+ end
61
+
62
+ def render_resource_markdown(name, attributes)
63
+ p name
64
+ p attributes
65
+ ::Erubis::Eruby.new(resource_template).evaluate(name: name, attributes: attributes)
66
+ end
67
+
68
+ def resource_template
69
+ File.read(File.expand_path("../templates/_resource.md.erb", __FILE__))
70
+ end
71
+
72
+ def resources_contents
73
+ self.class.resources.map { |name, attributes| render_resource_markdown(name, attributes) }
74
+ end
75
+
76
+ def resources_markdown
77
+ ::Erubis::Eruby.new(resources_template).evaluate { resources_contents.join("\n") }
78
+ end
79
+
80
+ def resources_template
81
+ File.read(File.expand_path("../templates/resources.md.erb", __FILE__))
82
+ end
83
+ end
84
+
85
+ module Patches
86
+ class << self
87
+ def patch(target_class_path)
88
+ patch_class_path = "ocs/document/patches/#{target_class_path}"
89
+ require target_class_path
90
+ require patch_class_path
91
+ target_class = target_class_path.camelize.constantize
92
+ patch_class = patch_class_path.camelize.constantize
93
+ target_class.prepend(patch_class)
94
+ if patch_class.const_defined?(:ClassMethods)
95
+ target_class.singleton_class.instance_eval { self.prepend(patch_class::ClassMethods) }
96
+ end
97
+ end
98
+ end
99
+
100
+ module Ocs
101
+ module Resources
102
+ module Base
103
+ module ClassMethods
104
+
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,18 @@
1
+ module Ocs
2
+ module Document
3
+ module Patches
4
+ module Ocs
5
+ module Resources
6
+ module Base
7
+ module ClassMethods
8
+ def define_attribute(attribute_name, type:)
9
+ ::Ocs::Document::Generator.resources[to_s.split(/::/).last][attribute_name] = {type: type}
10
+ super
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ ## <%= @name %>
2
+ ### Attributes
3
+
4
+ Attribute | Type
5
+ ---|---
6
+ <%- @attributes.each do |name, contents| %>
7
+ <%= name %> | <%= contents[:type] %>
8
+ <%- end %>
@@ -0,0 +1,4 @@
1
+ Resouces
2
+ ========
3
+
4
+ <%= yield %>
@@ -0,0 +1,6 @@
1
+ module Ocs
2
+ class OcsError < StandardError; end
3
+ class AttributeClassMismatch < OcsError; end
4
+ class AttributeTypeMismatch < OcsError; end
5
+ class MissingKey < OcsError; end
6
+ end
@@ -1,10 +1,12 @@
1
+ require "ocs/resources/dynamic_definers"
2
+ require "ocs/resources/base"
3
+
1
4
  module Ocs
2
5
  module Resources
3
6
  autoload :Account, "ocs/resources/account"
4
7
  autoload :Address, "ocs/resources/address"
5
8
  autoload :AffinityGroup, "ocs/resources/affinity_group"
6
9
  autoload :AsyncJob, "ocs/resources/async_job"
7
- autoload :Base, "ocs/resources/base"
8
10
  autoload :DiskOffering, "ocs/resources/disk_offering"
9
11
  autoload :Domain, "ocs/resources/domain"
10
12
  autoload :Group, "ocs/resources/group"
@@ -1,9 +1,5 @@
1
1
  module Ocs
2
2
  module Resources
3
- class AttributeTypeError < OcsError; end
4
- class AttributeClassError < OcsError; end
5
- class MissingKeyError < OcsError; end
6
-
7
3
  class Base
8
4
  BOOLEAN = [TrueClass, FalseClass].freeze
9
5
 
@@ -11,6 +7,8 @@ module Ocs
11
7
  self.delegations = {}
12
8
 
13
9
  class << self
10
+ include DynamicDefiners
11
+
14
12
  def all(client)
15
13
  list(client)
16
14
  end
@@ -65,99 +63,12 @@ module Ocs
65
63
  end
66
64
  end
67
65
  end
68
-
69
- # Dynamic Definitions
70
-
71
- def alias_attribute(new_name, original_name)
72
- alias_method new_name, original_name
73
- alias_method :"#{new_name}=", :"#{original_name}="
74
- end
75
-
76
- def define_action(action_name, required: [], optional: [], api_name: nil)
77
- define_method(action_name) do |special_parameters = {}|
78
- api = api_name || "#{action_name}#{self.class.name}"
79
- parameters = action_parameters(required, optional).merge(special_parameters)
80
- send_and_update(api, parameters)
81
- end
82
- end
83
-
84
- def define_attribute(attribute_name, type:)
85
- define_method(:"#{attribute_name}=") do |value|
86
- unless [*type].any? { |type| value.is_a?(type) }
87
- raise AttributeTypeError.new(
88
- "#{attribute_name} needs to be a #{[*type].join(" or ")}"
89
- )
90
- end
91
- instance_variable_set(:"@#{attribute_name}", value)
92
- end
93
-
94
- attr_reader attribute_name
95
- end
96
-
97
- def delegate_attribute(attribute_name, to:, as:)
98
- writer_method_name = :"#{to}_#{as}="
99
- define_method(writer_method_name) do |value|
100
- instance =
101
- public_send(to) ||
102
- public_send(:"#{to}=", resource_class(to).new(client))
103
- instance.public_send(:"#{as}=", value)
104
- end
105
- delegations[attribute_name] = writer_method_name
106
-
107
- define_method(:"#{to}_#{as}") do
108
- instance = public_send(to)
109
- instance && instance.public_send(as)
110
- end
111
- end
112
-
113
- def delegate_attributes(attribute_name, to:)
114
- delegations[attribute_name] = :"#{to}="
115
- end
116
-
117
- def has_one(attribute_name)
118
- define_method(:"#{attribute_name}=") do |value|
119
- klass = resource_class(attribute_name)
120
- unless value.instance_of?(klass)
121
- raise AttributeClassError.new(
122
- "#{attribute_name} needs to be an instance of #{klass}"
123
- )
124
- end
125
- instance_variable_set(:"@#{attribute_name}", value)
126
- end
127
-
128
- attr_reader attribute_name
129
- end
130
-
131
- def has_many(attribute_name)
132
- define_method(:"#{attribute_name}=") do |values|
133
- unless values.is_a?(Array)
134
- raise AttributeTypeError.new("#{attribute_name} needs to be a Array")
135
- end
136
-
137
- klass = resource_class(attribute_name.to_s.singularize)
138
- instances = values.map do |value|
139
- case value
140
- when klass
141
- value
142
- when Hash
143
- klass.new(client, value)
144
- else
145
- raise AttributeClassError.new(
146
- "elements of #{attribute_name} need to be instances of #{klass}"
147
- )
148
- end
149
- end
150
- instance_variable_set(:"@#{attribute_name}", instances)
151
- end
152
-
153
- attr_reader attribute_name
154
- end
155
66
  end
156
67
 
157
- define_attribute :id, type: String
158
-
159
68
  attr_reader :client, :error
160
69
 
70
+ define_attribute :id, type: String
71
+
161
72
  def initialize(client, raw_hash = {})
162
73
  @client = client
163
74
  @raw_hash = raw_hash
@@ -205,7 +116,7 @@ module Ocs
205
116
  if response.success?
206
117
  @error = nil
207
118
  update_attributes!(response.content)
208
- true
119
+ self
209
120
  else
210
121
  @error = ApiError.new(api, parameters, response)
211
122
  false
@@ -0,0 +1,94 @@
1
+ module Ocs
2
+ module Resources
3
+ module DynamicDefiners
4
+ def alias_attribute(alias_name, original_name)
5
+ alias_method alias_name, original_name
6
+ alias_method :"#{alias_name}=", :"#{original_name}="
7
+ end
8
+
9
+ def define_action(action_name, required: [], optional: [], api_name: nil)
10
+ define_method(action_name) do |special_parameters = {}|
11
+ api = api_name || "#{action_name}#{self.class.name}"
12
+ parameters = action_parameters(required, optional).merge(special_parameters)
13
+ send_and_update(api, parameters)
14
+ end
15
+
16
+ define_method(:"#{action_name}!") do |special_parameters = {}|
17
+ send(action_name) || fail(@error)
18
+ end
19
+ end
20
+
21
+ def define_attribute(attribute_name, type:)
22
+ define_method(:"#{attribute_name}=") do |value|
23
+ unless [*type].any? { |t| value.is_a?(t) }
24
+ fail AttributeTypeMismatch.new(
25
+ "#{attribute_name} needs to be a #{[*type].join(" or ")}"
26
+ )
27
+ end
28
+ instance_variable_set(:"@#{attribute_name}", value)
29
+ end
30
+
31
+ attr_reader attribute_name
32
+ end
33
+
34
+ def delegate_attribute(attribute_name, to:, as:)
35
+ writer_method_name = :"#{to}_#{as}="
36
+ define_method(writer_method_name) do |value|
37
+ instance =
38
+ public_send(to) ||
39
+ public_send(:"#{to}=", resource_class(to).new(client))
40
+ instance.public_send(:"#{as}=", value)
41
+ end
42
+ delegations[attribute_name] = writer_method_name
43
+
44
+ define_method(:"#{to}_#{as}") do
45
+ instance = public_send(to)
46
+ instance && instance.public_send(as)
47
+ end
48
+ end
49
+
50
+ def delegate_attributes(attribute_name, to:)
51
+ delegations[attribute_name] = :"#{to}="
52
+ end
53
+
54
+ def has_one(attribute_name)
55
+ define_method(:"#{attribute_name}=") do |value|
56
+ klass = resource_class(attribute_name)
57
+ unless value.instance_of?(klass)
58
+ fail AttributeClassMismatch.new(
59
+ "#{attribute_name} needs to be an instance of #{klass}"
60
+ )
61
+ end
62
+ instance_variable_set(:"@#{attribute_name}", value)
63
+ end
64
+
65
+ attr_reader attribute_name
66
+ end
67
+
68
+ def has_many(attribute_name)
69
+ define_method(:"#{attribute_name}=") do |values|
70
+ unless values.is_a?(Array)
71
+ fail AttributeTypeMismatch.new("#{attribute_name} needs to be an Array")
72
+ end
73
+
74
+ klass = resource_class(attribute_name.to_s.singularize)
75
+ instances = values.map do |value|
76
+ case value
77
+ when klass
78
+ value
79
+ when Hash
80
+ klass.new(client, value)
81
+ else
82
+ fail AttributeClassMismatch.new(
83
+ "Elements of #{attribute_name} need to be instances of #{klass} or Hash"
84
+ )
85
+ end
86
+ end
87
+ instance_variable_set(:"@#{attribute_name}", instances)
88
+ end
89
+
90
+ attr_reader attribute_name
91
+ end
92
+ end
93
+ end
94
+ end
@@ -1,3 +1,3 @@
1
1
  module Ocs
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "faraday_middleware"
24
24
  spec.add_dependency "memoist"
25
25
 
26
+ spec.add_development_dependency "erubis"
26
27
  spec.add_development_dependency "bundler", "~> 1.9"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "pry"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ocs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - nownabe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-22 00:00:00.000000000 Z
11
+ date: 2015-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: erubis
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -124,9 +138,15 @@ files:
124
138
  - Rakefile
125
139
  - bin/console
126
140
  - bin/setup
141
+ - docs/resources.md
127
142
  - lib/ocs.rb
128
143
  - lib/ocs/api_error.rb
129
144
  - lib/ocs/client.rb
145
+ - lib/ocs/document/generator.rb
146
+ - lib/ocs/document/patches/ocs/resources/base.rb
147
+ - lib/ocs/document/templates/_resource.md.erb
148
+ - lib/ocs/document/templates/resources.md.erb
149
+ - lib/ocs/errors.rb
130
150
  - lib/ocs/request.rb
131
151
  - lib/ocs/resources.rb
132
152
  - lib/ocs/resources/account.rb
@@ -136,6 +156,7 @@ files:
136
156
  - lib/ocs/resources/base.rb
137
157
  - lib/ocs/resources/disk_offering.rb
138
158
  - lib/ocs/resources/domain.rb
159
+ - lib/ocs/resources/dynamic_definers.rb
139
160
  - lib/ocs/resources/group.rb
140
161
  - lib/ocs/resources/host.rb
141
162
  - lib/ocs/resources/iso.rb
@@ -178,3 +199,4 @@ signing_key:
178
199
  specification_version: 4
179
200
  summary: Ocs is an objective CloudStack API client.
180
201
  test_files: []
202
+ has_rdoc: