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
41
# 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
  path_finder = PathFinder.new
  @target = path_finder.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



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

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

#add_path_list(list) ⇒ Object



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

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

#clean_path(path) ⇒ Object



133
134
135
136
137
138
# File 'lib/tasks/mxmlc.rb', line 133

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

#defineObject



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

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



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

def el
  return @external_library_path
end

#execute(cmd, args) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/tasks/mxmlc.rb', line 69

def execute(cmd, args)
  begin
    sh(%{#{cmd} #{args}})
  rescue
    puts 'There was an error executing mxmlc, please make sure mxmlc is in your class path and can be executed from the same environment this rake task was run from'
  end
end

#lObject



89
90
91
# File 'lib/tasks/mxmlc.rb', line 89

def l
  return @library_path
end

#option_listObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/tasks/mxmlc.rb', line 93

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



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

def rsl
  return @runtime_shared_libraries
end

#spObject



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

def sp
  return @source_path
end