Class: AsProject::MXMLC

Inherits:
EnvTask show all
Defined in:
lib/tasks/mxmlc.rb

Direct Known Subclasses

FCSH

Instance Attribute Summary collapse

Attributes inherited from EnvTask

#name, #target

Instance Method Summary collapse

Methods inherited from EnvTask

#target_not_found

Constructor Details

#initialize(name = :mxmlc) {|_self| ... } ⇒ MXMLC

Returns a new instance of MXMLC.

Yields:

  • (_self)

Yield Parameters:



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/tasks/mxmlc.rb', line 27

def initialize(name=:mxmlc)
  @options = []
  @source_path = []
  @external_library_path = []
  @frames = []
  @library_path = []
  @theme = []
  @runtime_shared_libraries = []
  @incremental = false
  @target = 'mxmlc'
  @name = name
  yield self if block_given?
  define
end

Instance Attribute Details

#accessibleObject

Returns the value of attribute accessible.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def accessible
  @accessible
end

#debugObject

Returns the value of attribute debug.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def debug
  @debug
end

#default_background_colorObject

Returns the value of attribute default_background_color.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def default_background_color
  @default_background_color
end

#default_frame_rateObject

Returns the value of attribute default_frame_rate.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def default_frame_rate
  @default_frame_rate
end

#default_script_limitsObject

Returns the value of attribute default_script_limits.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def default_script_limits
  @default_script_limits
end

#default_sizeObject

Returns the value of attribute default_size.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def default_size
  @default_size
end

#external_library_pathObject

Returns the value of attribute external_library_path.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def external_library_path
  @external_library_path
end

#framesObject

Returns the value of attribute frames.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def frames
  @frames
end

#incrementalObject

Returns the value of attribute incremental.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def incremental
  @incremental
end

#inputObject

Returns the value of attribute input.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def input
  @input
end

#library_pathObject

Returns the value of attribute library_path.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def library_path
  @library_path
end

Returns the value of attribute link_report.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def link_report
  @link_report
end

#load_externsObject

Returns the value of attribute load_externs.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def load_externs
  @load_externs
end

#localeObject

Returns the value of attribute locale.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def locale
  @locale
end

#optimizeObject

Returns the value of attribute optimize.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def optimize
  @optimize
end

#outputObject

Returns the value of attribute output.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def output
  @output
end

#runtime_shared_librariesObject

Returns the value of attribute runtime_shared_libraries.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def runtime_shared_libraries
  @runtime_shared_libraries
end

#show_actionscript_warningsObject

Returns the value of attribute show_actionscript_warnings.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def show_actionscript_warnings
  @show_actionscript_warnings
end

#source_pathObject

Returns the value of attribute source_path.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def source_path
  @source_path
end

#themeObject

Returns the value of attribute theme.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def theme
  @theme
end

#use_networkObject

Returns the value of attribute use_network.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def use_network
  @use_network
end

#warningsObject

Returns the value of attribute warnings.



4
5
6
# File 'lib/tasks/mxmlc.rb', line 4

def warnings
  @warnings
end

Instance Method Details

#add_path(path) ⇒ Object



122
123
124
125
126
# File 'lib/tasks/mxmlc.rb', line 122

def add_path(path)
  input_files = FileList[File.dirname(path) + '/**/*.as']
  file input_files
  file @output => input_files
end

#add_path_list(list) ⇒ Object



115
116
117
118
119
120
# File 'lib/tasks/mxmlc.rb', line 115

def add_path_list(list)
  list.collect do |path|
    add_path(path)
    clean_path(path)
  end
end

#clean_path(path) ⇒ Object



128
129
130
131
132
133
# File 'lib/tasks/mxmlc.rb', line 128

def clean_path(path)
  if(!path.index(' ').nil?)
    path = %{"#{path}"}
  end
  return path
end

#defineObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/tasks/mxmlc.rb', line 42

def define
  @external_library_path = add_path_list(@external_library_path) if @external_library_path.size > 0
  @library_path = add_path_list(@library_path) if @library_path.size > 0
  @source_path = add_path_list(@source_path) if @source_path.size > 0
  @theme.collect do |item|
    file item
    file @output => item
  end
  
  if(!@input.nil?)
    add_path(File.dirname(@input))
  end

  file @output do |t|
    execute(@target, option_list.join(' '))
  end

  CLEAN.add(@output)
  if(@incremental)
    CLEAN.add(FileList['**/**/*.cache'])
  end

  desc "Compile #{@name} using MXMLC"
  task @name => [@output]
end

#elObject



76
77
78
# File 'lib/tasks/mxmlc.rb', line 76

def el
  return @external_library_path
end

#execute(cmd, args) ⇒ Object



68
69
70
# File 'lib/tasks/mxmlc.rb', line 68

def execute(cmd, args)
    sh(%{#{cmd} #{args}})
end

#lObject



84
85
86
# File 'lib/tasks/mxmlc.rb', line 84

def l
  return @library_path
end

#option_listObject



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/tasks/mxmlc.rb', line 88

def option_list
  result = @options.dup
  result << "-accessible" if accessible
  result << "-debug" if debug
  result << "-optimize" if optimize
  result << "-warnings" if warnings
  result << "-use-network" if use_network
  result << "-show-actionscript-warnings" if show_actionscript_warnings
  result << "-locale" << locale if locale
  result << "-default-frame-rate" << default_frame_rate if default_frame_rate
  result << "-default-background-color" << default_background_color if default_background_color
  result << "-default-script-limits" << default_script_limits if default_script_limits
  result << "-default-size" << default_size if default_size
  result << "-load-externs" << load_externs if load_externs
  result << "-link-report" << link_report if link_report
  result << "-output" << clean_path(output) if output
  result << "-theme " + theme.join(" -theme ") if theme.size > 0
  result << "-frame " + frames.join(" -frame ") if frames.size > 0
  result << "-rsl=" + runtime_shared_libraries.join(" -rsl=") if runtime_shared_libraries.size > 0
  result << "-el+=" + external_library_path.join(" -el+=") if external_library_path.size > 0
  result << "-l=" + library_path.join(" -l=") if library_path.size > 0
  result << "-sp=" + source_path.join(" -sp=") if source_path.size > 0
  result << "-incremental" if incremental
  result << clean_path(input)
  return result
end

#rslObject



80
81
82
# File 'lib/tasks/mxmlc.rb', line 80

def rsl
  return @runtime_shared_libraries
end

#spObject



72
73
74
# File 'lib/tasks/mxmlc.rb', line 72

def sp
  return @source_path
end