Module: Itamae::Resource
- Defined in:
- lib/itamae/resource.rb,
lib/itamae/resource/git.rb,
lib/itamae/resource/base.rb,
lib/itamae/resource/file.rb,
lib/itamae/resource/link.rb,
lib/itamae/resource/user.rb,
lib/itamae/resource/execute.rb,
lib/itamae/resource/package.rb,
lib/itamae/resource/service.rb,
lib/itamae/resource/template.rb,
lib/itamae/resource/directory.rb,
lib/itamae/resource/remote_file.rb,
lib/itamae/resource/local_ruby_block.rb
Defined Under Namespace
Classes: Base, Directory, Execute, File, Git, Link, LocalRubyBlock, Package, RemoteFile, Service, Template, User
Constant Summary
collapse
- Error =
Class.new(StandardError)
- AttributeMissingError =
Class.new(StandardError)
- InvalidTypeError =
Class.new(StandardError)
- ParseError =
Class.new(StandardError)
Class Method Summary
collapse
Class Method Details
.get_resource_class(method) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/itamae/resource.rb', line 35
def get_resource_class(method)
begin
const_get(get_resource_class_name(method))
rescue NameError => e
const_get(get_resource_plugin_class_name(method))
end
end
|
.get_resource_class_name(method) ⇒ Object
23
24
25
|
# File 'lib/itamae/resource.rb', line 23
def get_resource_class_name(method)
to_camel_case(method.to_s)
end
|
.get_resource_plugin_class_name(method) ⇒ Object
27
28
29
|
# File 'lib/itamae/resource.rb', line 27
def get_resource_plugin_class_name(method)
'::Itamae::Plugin::Resource::' + to_camel_case(method.to_s)
end
|
.parse_description(desc) ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/itamae/resource.rb', line 43
def parse_description(desc)
if /\A([^\[]+)\[([^\]]+)\]\z/ =~ desc
[$1, $2]
else
raise ParseError, "'#{desc}' doesn't represent a resource."
end
end
|
.to_camel_case(str) ⇒ Object
31
32
33
|
# File 'lib/itamae/resource.rb', line 31
def to_camel_case(str)
str.split('_').map {|part| part.capitalize}.join
end
|