5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/aml-bundle.rb', line 5
def self.initialize(arguments)
argument = Argument.new(arguments)
argument.required('action','The required --generate argument has not been defined.')
argument.required('name','The required --name argument has not been defined.')
if argument.has_requirements? basePath = File.dirname('~')
argument.create_if_empty('--','bundle')
argument.create_if_empty('method','')
argument.create_if_empty('mixin','')
argument.create_if_empty('partial','')
name = {:directory => argument.read('name').downcase.gsub(' ','-'), :class => argument.read('name').gsub(' ','')}
FileUtils.mkdir_p(File.join(name[:directory],'partial'))
%w"method.rb mixin.aml".each do |file|
File.new(File.join(name[:directory],"#{file}"), 'w')
end
mixins = "%!-- #{argument.read('name')} Mixin Definitions --%"
argument.read('mixin').split(' ').each do |mixin|
mixin = mixin.split(':')
mixin_name = mixin[0]
attributes = ""
if mixin.count > 1
mixin.shift
mixin.each do |attribute|
a = attribute.split('=')
attributes +="#{a[0]}='#{a[1]}',"
end
attributes = "(#{attributes[0..-2]})"
end
mixins += "\r\n%%#{mixin_name}#{attributes}{\r\n\t\r\n}"
end
File.open(File.join(name[:directory],'mixin.aml'), 'w'){|file|file.write(mixins)}
File.open(File.join(name[:directory],'method.rb'), 'w'){|file|file.write("class #{name[:class]}\r\n\tdef self.aml\r\n\t\t\r\n\tend\r\nend")}
argument.read('partial').split(' ').each do |partial|
File.new(File.join(name[:directory],'partial',"#{partial}.aml"),'w')
end
end
end
|