Class: AbstractMarkupLanguage::Bundle

Inherits:
Object
  • Object
show all
Defined in:
lib/aml-bundle.rb

Class Method Summary collapse

Class Method Details

.initialize(arguments) ⇒ Object



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.create_action('create')
	#argument.create_action('install')
	#argument.create_action('update')
	#argument.create_action('delete')
	
	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?#and directory exists false?)
		basePath = File.dirname('~')

		argument.create_if_empty('--','bundle')

		argument.create_if_empty('method','')
		argument.create_if_empty('mixin','')
		argument.create_if_empty('partial','')
		#ap argument.hash
		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