Class: Compile

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

Instance Method Summary collapse

Constructor Details

#initialize(argument) ⇒ Compile

Returns a new instance of Compile.



3
4
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
# File 'lib/aml/Compile.rb', line 3

def initialize(argument)
  @argument = argument
  file = @argument.get('build')
  @prepare = Prepare.new(file)
  @inline = [
    {:type=> :attribute, :regex=> /@\(\:(?<name>[\w|\-]+)\)/},
    {:type=> :method, :regex=> /::((?<bundle>[\w|\-]+)\.)?(?<name>[\w|\-]+)(\{(?<attribute>.+)\})?/},
    {:type=> :variable, :regex=> /\@\(((?<bundle>[\w|\-]+)\.)?(?<name>[\w|\-]+)\)/}
  ]
  @prepare.cluster.variables['false'] = {} if @prepare.cluster.variables.include?('false') == false
  local = [
    {:name=> 'file-created', :value=> Time.new.strftime('%Y-%m-%d %H:%M:%S')},
    {:name=> 'file-name', :value=> File.basename(file)},
    {:name=> 'file-path', :value=> File.expand_path(file)}
  ].each do |variable|
    @prepare.cluster.variables['false'][variable[:name].to_s] = [{:number=>0, :value=>variable[:value].to_s}]
  end

  @log = []

  @prepare.log.each do |log|
    if log[:type] == "mixin"
      @log << log if log[:bundle] != false
    else
      @log << log
    end
  end
  

  if @log.count == 0
    process
    @prepare.cluster.post_process
  end

end

Instance Method Details

#logObject



38
39
40
# File 'lib/aml/Compile.rb', line 38

def log
  @log
end

#post_processObject



54
55
56
57
58
59
60
# File 'lib/aml/Compile.rb', line 54

def post_process
  @prepare.cluster.definition.each do |definition|
    definition.self[:hash].each_with_index do |line, index|
      process_variable_and_method(line, index, definition, true)
    end
  end
end

#processObject



44
45
46
47
48
49
50
51
52
53
# File 'lib/aml/Compile.rb', line 44

def process
  @prepare.cluster.definition.each do |definition|
    definition.self[:hash].each_with_index do |line, index|
      process_variable_and_method(line, index, definition)
      process_mixin(line, index, definition)
      process_partial(line, index, definition)
    end
  end
  process if @prepare.cluster.definition.select{|k|k.self[:type] == "base"}.first.self[:hash].select{|k|k[:type] == :mixin or k[:type] == :partial}.count > 0
end

#structureObject



41
42
43
# File 'lib/aml/Compile.rb', line 41

def structure
  @prepare.cluster.definition.select{|k|k.self[:type] == "base"}.first.self[:hash]
end