{: rooto:"YARD::CodeObjects::RootObject:@childrenIC:&YARD::CodeObjects::CodeObjectList[o:$YARD::CodeObjects::ModuleObject;IC;[o:&YARD::CodeObjects::ConstantObject: @files[["lib/flak/version.rbi:@current_file_has_commentsF: @name: VERSION:@source_type: ruby:@visibility: public: @tags[:@docstringIC:YARD::Docstring" :EF: @object@ : @summary0:@hash_flagF:@ref_tags[;[: @allI";F:@namespace@: @pathI"Flak::VERSION;F: @linei:@signature"VERSION = "0.0.6": @source"VERSION = "0.0.6": @value" "0.0.6": @dynamicTo:$YARD::CodeObjects::MethodObject: @scope: class;;;I" Flak.os;F:@parameters[; [["lib/flak/rake/os.rbi ; T; :os;;;[;IC;"HProvide a slightly nicer OS string than the RUBY_PLATFORM variable ;F;@;0;F;[;[o:YARD::Tags::Tag :@tag_nameI" return;F: @textI"9Either 'linux_64', 'linux_32', 'darwin', or 'win_64';F; 0: @types[I" String;F;@;I"Provide a slightly nicer OS string than the RUBY_PLATFORM variable @return [String] Either 'linux_64', 'linux_32', 'darwin', or 'win_64';F:@line_rangeo: Range: exclF: begini:endi ;@; "def self.os case RUBY_PLATFORM when /64-linux/ 'linux_64' when /i686_linux/ 'linux_32' when /darwin/ 'darwin' when /i386-cygwin/ 'win_64' end end;I"def os(.);F:@explicitT:@docstring_extra0;"To:#YARD::CodeObjects::ClassObject;IC;[: @owner@*:@class_mixinsIC;[;4@*:@instance_mixinsIC;[;4@*:@attributesIC:SymbolHash{;%IC;8{:@symbolize_valueT: instanceIC;8{;9T;9T: @aliases{: @groups[; [["lib/flak/thor/cli.rbi ; T; :CLI;;;;;[;IC;"&Registers generate as a flak task ;F;@*;0;F;[;[;"&Registers generate as a flak task;,o;-;.F;/i ;0i ;@;I"Flak::CLI;F:@superclasso:YARD::CodeObjects::Proxy : @imethod0:@origname0:@orignamespace0; : Thor;@: @obj0;20;"To; ;IC;[o;#;$;%;;;I"Flak::Errors.assert;F;&[ [I"var;T0[I" type;T0[I" bind;T0[I" file;T0; [["lib/flak/rake/errors.rbi; T; : assert;;;[;IC;"lAssert that a variable exists and has the correct type. Prints a bright red informative message if not. ;F;@@;0;F;[;[ o;( ;)I" param;F;*I"the variable's name;T; I"var;F;+[I" String;F;@@o;( ;)I" param;F;*I"the variable's type;T; I" type;F;+[I" String;F;@@o;( ;)I" param;F;*I"Nthe binding for the calling object so that the variable can be evaluated.;T; I" bind;F;+[I" Binding;F;@@o;( ;)I" param;F;*I">the filename where the call for this assertion came from.;T; I" file;F;+[I" String;F;@@o;( ;)I" return;F;*I"formatted error message.;T; 0;+[I" String;F;@@;I"Assert that a variable exists and has the correct type. Prints a bright red informative message if not. @param var [String] the variable's name @param type [String] the variable's type @param bind [Binding] the binding for the calling object so that the variable can be evaluated. @param file [String] the filename where the call for this assertion came from. @return [String] formatted error message.;T;,o;-;.F;/i;0i;@>; I"def self.assert(var, type, bind, file) param = eval(var,bind) ap "#{var} is not a #{type}. It is a #{param.class}. (#{File.basename(file)})" , :color => {:string => :red} unless param.class == Kernel.const_get(type) end;T;I"def assert(.);F;1T;20;"T;4@>;5IC;[;4@>;6IC;[;4@>;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Mi ; T; : Errors;;;;;[;IC;".Module that contains flak error functions ;F;@>;0;F;[;[;I".Module that contains flak error functions;T;,o;-;.F;/i ;0i ;@;I"Flak::Errors;F;20;"To;3;IC;[ o;#;$;:;;;I"Flak::Target#settings;F;&[; [["lib/flak/rake/target.rbi; F; : settings;;;[;IC;",Returns the value of attribute settings ;F;@;0;F;[;[;I",Returns the value of attribute settings;F;@~; I"!def settings @settings end;F;I"def settings;F;20;"To;#;$;:;;;I"Flak::Target#settings=;F;&[[I" value;F0; [[@i; F; :settings=;;;[;IC;" Sets the attribute settings ;F;@;0;F;[;[o;( ;)I" param;F;*I"0the value to set the attribute settings to.;F; I" value;F;+0;@;I"YSets the attribute settings @param value the value to set the attribute settings to.;F;@~; I"1def settings=(value) @settings = value end;F;I"def settings=(value);F;20;"To;#;$;:;;;I"Flak::Target#initialize;F;&[[" root0["target_file0; [[@i; T; :initialize;;;[;IC;" Constructs a target object. ;F;@;0;F;[;[o;( ;)I" param;F;*I"+the directory containing the Rakefile.;F; I" root;F;+[I" String;F;@o;( ;)I" param;F;*I"cthe root-relative file that specifies how to build this target. Either project.yml or tool.yml;F; I"target_file;F;+[I" String;F;@o;( ;)I" return;F;*I"a new instance of Target;F; 0;+[I" Target;F;@;I"Constructs a target object. @param root [String] the directory containing the Rakefile. @param target_file [String] the root-relative file that specifies how to build this target. Either project.yml or tool.yml;F;,o;-;.F;/i;0i;@~; "def initialize(root, target_file) tmp_env = YAML::load_file( root + '/config/environment.yml' ) tmp_goal = YAML::load_file( target_file ) @settings = Hash.new @settings[:configuration] = tmp_env['configuration'] @settings[:templates] = tmp_goal['templates'] @settings[:os] = Flak.os @settings[:root] = root @settings[:target_file] = target_file @settings[:full_target_file] = File.join(@settings[:root], target_file ) @settings[:relative_goal_root] = File.dirname(target_file) @settings[:goal_root] = File.dirname( @settings[:full_target_file] ) @settings[:templates] = (["environment"] | @settings[:templates]) end;I"&def initialize(root, target_file);F;1T;20;"To;#;$;:;;;I"Flak::Target#build;F;&[; [[@i); T; : build;;;[;IC;"HAfter the Target has been constructed, generate settings and tasks. ;F;@;0;F;[;[;"HAfter the Target has been constructed, generate settings and tasks.;,o;-;.F;/i(;0i(;@~; "7def build generate_settings generate_tasks end;I"def build( );F;1T;20;"To;#;$;:;;;I"#Flak::Target#generate_settings;F;&[; [[@i0; T; :generate_settings;;;[;IC;"\Extend this Target with settings and methods from templates declared in the target file ;F;@;0;F;[;[;"]Extend this Target with settings and methods from templates declared in the target file ;,o;-;.F;/i/;0i/;@~; "def generate_settings @settings[:templates].each do |template_name| mod = Flak::Template.const_get("#{template_name.camelize}") mod = mod.const_get("Settings") raise TypeError, "#{mod.inspect} must be a Module" unless mod.kind_of? Module self.extend( mod ) end yml = Flak::Template::MergeEngine.flatten_yaml_file(@settings, @settings[:target_file]) @settings = @settings.flak_merge(yml) expand_filelists end;I"def generate_settings( );F;1T;20;"To;#;$;:;;;I" Flak::Target#generate_tasks;F;&[; [[@iA; T; :generate_tasks;;;[;IC;"MExtend this Target with tasks from templates declared in the target file ;F;@;0;F;[;[;"NExtend this Target with tasks from templates declared in the target file ;,o;-;.F;/i@;0i@;@~; "def generate_tasks @settings[:templates].each do |template_name| mod = Flak::Template.const_get("#{template_name.camelize}") mod = mod.const_get("Tasks") raise TypeError, "#{mod.inspect} must be a Module" unless mod.kind_of? Module self.extend( mod ) end end;I"def generate_tasks( );F;1T;20;"To;#;$;:;;;I""Flak::Target#expand_filelists;F;&[; [[@iQ; T; :expand_filelists;;;[;IC;"jExpand FileList objects into arrays so that calling inspect on a target gives a more readable output. ;F;@;0;F;[;[;"jExpand FileList objects into arrays so that calling inspect on a target gives a more readable output.;,o;-;.F;/iP;0iP;@~; "Idef expand_filelists @settings.each do |k,v| if k.to_s =~ /_files$|_paths$/ unless v.nil? v = v.collect { |el| (el[0] == '/') || (el[1] ==":") ? el : File.join(@settings[:relative_goal_root],el) } @settings[(k.to_sym)] = k.to_s =~ /_files$/ ? FileList[v].to_a : v end end end end;I"def expand_filelists( );F;1T;20;"T;4@~;5IC;[;4@~;6IC;[o;? ;@0;A"Flak::FileActions;B@~; :FileActions;@;Do; ;IC;[ o;#;$;:;;;I"&Flak::FileActions#rebuild_symlink;F;&[["target_file0[" new_file0; [[""lib/flak/rake/file_actions.rbi; T; :rebuild_symlink;;;[;IC;"6Create a symlink. Remove it if it already exists. ;F;@;0;F;[;[o;( ;)I" param;F;*I"'the file to point the new file at.;F; I"target_file;F;+[I" String;F;@o;( ;)I" param;F;*I"the new file.;F; I" new_file;F;+[I" String;F;@;I"Create a symlink. Remove it if it already exists. @param target_file [String] the file to point the new file at. @param new_file [String] the new file.;F;,o;-;.F;/i;0i;@; "def rebuild_symlink(target_file,new_file) if File.symlink?(new_file) File.unlink(new_file) end File.symlink(target_file, new_file) end;I".def rebuild_symlink(target_file,new_file);F;1T;20;"To;#;$;:;;;I"&Flak::FileActions#remove_and_copy;F;&[[" source0["destination0; [[@i%; T; :remove_and_copy;;;[;IC;"Remove a file and copy a new file over. If we just copy source to destination and destination exists and is a directory, then the src is put in the destination, as opposed to overwriting it. For this reason, we delete destination first. ;F;@;0;F;[;[o;( ;)I" param;F;*I"the source file.;F; I" source;F;+[I" String;F;@o;( ;)I" param;F;*I"the destination file.;F; I"destination;F;+[I" String;F;@;I"HRemove a file and copy a new file over. If we just copy source to destination and destination exists and is a directory, then the src is put in the destination, as opposed to overwriting it. For this reason, we delete destination first. @param source [String] the source file. @param destination [String] the destination file.;F;,o;-;.F;/i;0i$;@; "mdef remove_and_copy(source,destination) remove_file(destination, true) cp_r source, destination end;I",def remove_and_copy(source,destination);F;1T;20;"To;#;$;:;;;I")Flak::FileActions#make_directory_for;F;&[[" file0; [[@i0; T; :make_directory_for;;;[;IC;"UMake a directory to contain a file. Create directories recursively if necessary. ;F;@6;0;F;[;[o;( ;)I" param;F;*I"%the file that needs a directory.;F; I" file;F;+[I" String;F;@6;I"Make a directory to contain a file. Create directories recursively if necessary. @param file [String] the file that needs a directory. ;F;,o;-;.F;/i-;0i/;@; "Ldef make_directory_for(file) FileUtils.mkdir_p file.pathmap('%d') end;I"!def make_directory_for(file);F;1T;20;"To;#;$;:;;;I")Flak::FileActions#write_erb_template;F;&[[" erb_file0["released_file0[" opts"{}; [[@i;; T; :write_erb_template;;;[;IC;"FCreate a destination file by filtering a source file through ERB. ;F;@K;0;F;[;[ o;( ;)I" param;F;*I"the file to be filtered.;F; I" erb_file;F;+[I" String;F;@Ko;( ;)I" param;F;*I"the result filename.;F; I"released_file;F;+[I" String;F;@Ko;( ;)I" param;F;*I"the options.;F; I" opts;F;+[I" Hash;F;@Ko:YARD::Tags::OptionTag ;)I" option;F;*0; I" opts;F;+0: @pairo:YARD::Tags::DefaultTag ;)I" option;F;*I"The file mode.;F; I" :chmod;F;+[I" String;F:@defaults0;@K;I"Create a destination file by filtering a source file through ERB. @param erb_file [String] the file to be filtered. @param released_file [String] the result filename. @param opts [Hash] the options. @option opts :chmod [String] The file mode.;F;,o;-;.F;/i6;0i:;@; "qdef write_erb_template(erb_file,released_file, opts={}) if (!(opts[:no_force] && File.exists?(released_file) )) template = ERB.new( File.read(erb_file) , 0, "%<>") File.open(released_file, 'w') do |f| puts "template #{erb_file} #{released_file}" f.puts(template.result(binding)) f.chmod(opts[:chmod].to_i) if opts[:chmod] end end end;I"o;? ;@0;A0;B0; : Object;@;D0;"To; ;IC;[o;#;$;%;;;I"!Flak::Wizard.project_options;F;&[; [["lib/flak/thor/wizard.rbi ; T; :project_options;;;[;IC;"Promt the user for information about the project to be created. The result values are used to decide what files to generate and in some cases to define the content of files such as project.yml. ;F;@;0;F;[;[o;( ;)I" return;F;*I"9true or false values indicating the type of project.;F; 0;+[I" Hash;F;@;I"Promt the user for information about the project to be created. The result values are used to decide what files to generate and in some cases to define the content of files such as project.yml. @return [Hash] true or false values indicating the type of project.;F;,o;-;.F;/i ;0i ;@; "def self.project_options asker = Thor::Shell::Basic.new opts = Hash.new asker.say("Flak can set up environment variables for this project based on the tools it contains. So please answer the following questions:") opts[:maya_module] = asker.yes?("Will this project contain a Maya module? (y/n)") opts[:delight] = asker.yes?("Will this project contain 3delight tools? (y/n)") opts[:nuke] = asker.yes?("Will this project contain nuke tools? (y/n)") opts end;I"def project_options(.);F;1T;20;"To;#;$;%;;;I"Flak::Wizard.tool_options;F;&[; [[@i!; T; :tool_options;;;[;IC;"Promt the user for information about the tool to be created. The result values are used to decide what files to generate and in some cases to define the content of files such as tool.yml. ;F;@;0;F;[;[o;( ;)I" return;F;*I"6true or false values indicating the type of tool.;F; 0;+[I" Hash;F;@;I"Promt the user for information about the tool to be created. The result values are used to decide what files to generate and in some cases to define the content of files such as tool.yml. @return [Hash] true or false values indicating the type of tool.;F;,o;-;.F;/i;0i ;@; "def self.tool_options asker = Thor::Shell::Basic.new opts = Hash.new opts[:maya_plugin_target] = false opts[:maya_app_target] = false opts[:delight_target] = false opts[:standalone_target] = false opts[:maya_scripts] = false opts[:nuke_scripts] = false opts[:shell_scripts] = false finished_target = false finished_target = opts[:maya_plugin_target] = opts[:maya_scripts] = asker.yes?("Is this tool a Maya plugin? (y/n)") unless finished_target finished_target = opts[:maya_app_target] = opts[:maya_scripts] = asker.yes?("Is this tool a Maya standalone application? (y/n)") unless finished_target finished_target = opts[:delight_target] = asker.yes?("Will this tool contain 3delight shaders filters or DSOs? (y/n)") unless finished_target finished_target = opts[:standalone_target] = asker.yes?("Will this tool contain a standalone application? (y/n)") unless finished_target opts[:maya_scripts] = asker.yes?("Will this tool also contain maya scripts? (y/n)") unless opts[:maya_scripts] opts[:nuke_scripts] = asker.yes?("Will this tool also contain nuke scripts? (y/n)") opts[:shell_scripts] = asker.yes?("Will this tool also contain shell scripts? (y/n)") opts end;I"def tool_options(.);F;1T;20;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; : Wizard;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"Flak::Wizard;F;"To;3;IC;[o;#;$;:;;;I"Flak::Generate#name;F;&[; [["lib/flak/thor/generate.rbi; F; : name;;;[;IC;"(Returns the value of attribute name ;F;@;0;F;[;[;I"(Returns the value of attribute name;F;@; I"def name @name end;F;I" def name;F;20;"To;#;$;:;;;I"Flak::Generate#name=;F;&[[I" value;F0; [[@i; F; : name=;;;[;IC;"Sets the attribute name ;F;@;0;F;[;[o;( ;)I" param;F;*I",the value to set the attribute name to.;F; I" value;F;+0;@;I"QSets the attribute name @param value the value to set the attribute name to.;F;@; I")def name=(value) @name = value end;F;I"def name=(value);F;20;"To;#;$;:;;;I" Flak::Generate#tool_options;F;&[; [[@i; F; ;\;;;[;IC;"0Returns the value of attribute tool_options ;F;@;0;F;[;[;I"0Returns the value of attribute tool_options;F;@; I")def tool_options @tool_options end;F;I"def tool_options;F;20;"To;#;$;:;;;I"!Flak::Generate#tool_options=;F;&[[I" value;F0; [[@i; F; :tool_options=;;;[;IC;"$Sets the attribute tool_options ;F;@;0;F;[;[o;( ;)I" param;F;*I"4the value to set the attribute tool_options to.;F; I" value;F;+0;@;I"aSets the attribute tool_options @param value the value to set the attribute tool_options to.;F;@; I"9def tool_options=(value) @tool_options = value end;F;I"def tool_options=(value);F;20;"To;#;$;:;;;I"#Flak::Generate#project_options;F;&[; [[@i; F; ;[;;;[;IC;"3Returns the value of attribute project_options ;F;@ ;0;F;[;[;I"3Returns the value of attribute project_options;F;@; I"/def project_options @project_options end;F;I"def project_options;F;20;"To;#;$;:;;;I"$Flak::Generate#project_options=;F;&[[I" value;F0; [[@i; F; :project_options=;;;[;IC;"'Sets the attribute project_options ;F;@;0;F;[;[o;( ;)I" param;F;*I"7the value to set the attribute project_options to.;F; I" value;F;+0;@;I"gSets the attribute project_options @param value the value to set the attribute project_options to.;F;@; I"?def project_options=(value) @project_options = value end;F;I" def project_options=(value);F;20;"To;#;$;%;;;I"Flak::Generate.source_root;F;&[; [[@i; T; :source_root;;;[;IC;"7Provide source_root so that templates can be found ;F;@+;0;F;[;[;"7Provide source_root so that templates can be found;,o;-;.F;/i;0i;@; "Ndef self.source_root File.join(File.dirname(__FILE__), "templates") end;I"def source_root(.);F;1T;20;"To;#;$;:;;;I"Flak::Generate#project;F;&[[" name0; [[@i); T; : project;;;[;IC;"The project subcommand. Called with: flak generate project . Creates a flak project and populates it with files as specified by the users answers to the project wizard. ;F;@8;0;F;[;[;I"The project subcommand. Called with: flak generate project . Creates a flak project and populates it with files as specified by the users answers to the project wizard.;F;,o;-;.F;/i';0i(;@; "_def project(name) empty_directory(name) inside name do invoke :config end end;I"def project(name);F;1T;20;"To;#;$;:;;;I"Flak::Generate#config;F;&[[" name0; [[@i5; T; : config;;;[;IC;"The config subcommand. Called with: flak generate config . This is the same as the project subcommand, except it works from inside an existing project. ;F;@G;0;F;[;[;I"The config subcommand. Called with: flak generate config . This is the same as the project subcommand, except it works from inside an existing project.;F;,o;-;.F;/i3;0i4;@; "def config(name) opts = self.project_options self.name = name empty_directory("build") directory("doc") empty_directory("plugins") directory("config") create_file "#{name}/LICENSE" template( "product.mel.tt" , "script/maya/erb/#{name}.mel.erb" ) if opts[:maya_module] template( "INSTALL.tt" , "script/shell/erb/INSTALL_#{name.upcase}.erb") template( "product.sh.tt" , "script/shell/#{name}.sh" ) create_file "project.yml" do Flak::TargetFile.project(name,opts) end # rakefile copy_file "Rakefile.tt", "Rakefile.rb" copy_file "gitignore.tt", ".gitignore" end;I"def config(name);F;1T;20;"To;#;$;:;;;I"Flak::Generate#tool;F;&[[" name0; [[@iQ; T; : tool;;;[;IC;"The tool subcommand. Called with: flak generate tool . Creates a tool inside a flak project and populates it with files as specified by the users answers to the tool wizard. ;F;@V;0;F;[;[;I"The tool subcommand. Called with: flak generate tool . Creates a tool inside a flak project and populates it with files as specified by the users answers to the tool wizard.;F;,o;-;.F;/iO;0iP;@; "def tool(name) opts = self.tool_options self.name= name create_file "#{name}/tool.yml" do Flak::TargetFile.tool(name,opts) end create_common_files create_maya_script_tree if opts[:maya_scripts] create_nuke_script_tree if opts[:nuke_scripts] create_shell_script_tree if opts[:shell_scripts] create_maya_plugin_files if opts[:maya_plugin_target] create_app_files if opts[:maya_app_target] || opts[:standalone_target] create_delight_tools_tree if opts[:delight_target] end;I"def tool(name);F;1T;20;"To;#;$;:;;;I"Flak::Generate#plugin;F;&[[" name0; [[@i; T; : plugin;;;[;IC;"The plugin subcommand. Called with: flak generate plugin . Creates an example plugin with the given name inside a flak project. ;F;@e;0;F;[;[;I"The plugin subcommand. Called with: flak generate plugin . Creates an example plugin with the given name inside a flak project.;F;,o;-;.F;/i;0i;@; "def plugin(name) self.name= name template("plugin.yml.tt", "config/#{name}.yml") template("plugin.rb.tt", "plugins/#{name}.rb") say("The plugin was created in plugins/#{name}.rb and a config file was made in config/#{name}.yml") say("To use this plugin, edit tool.yml") say("Add '#{name}' to the templates section, and add files needed by this plugin to a file list") say("See comments in plugins/#{name}.rb for more details") end;I"def plugin(name);F;1T;20;"To;#;$;%;;;I"Flak::Generate.banner;F;&[[" task0["namespace" false["subcommand" true; [[@i; T; : banner;;;[;IC;"oFormat the help line so it reads flak generate something name, as opposed to flak generate:something name. ;F;@t;0;F;[;[;I"oFormat the help line so it reads flak generate something name, as opposed to flak generate:something name.;F;,o;-;.F;/i;0i;@; "def self.banner(task, namespace = false, subcommand = true) task.formatted_usage(self, true, subcommand).split(':').join(' ') end;I"def banner(.);F;1T;20;"T;4@;5IC;[;4@;6IC;[o;? ;@0;A"Thor::Actions;B@; : Actions;o;? ;@0;A0;B0; ;C;@;D0;D0;4@;7IC;8{;%IC;8{;9T;:IC;8{;^IC;8{;W@;X@;9T;\IC;8{;W@;X@;9T;[IC;8{;W@ ;X@;9T;9T;9T;;{;<[; [[@i ; T; : Generate;;;;;[;IC;"#Thor tasks that generate files ;F;@;0;F;[;[;"#Thor tasks that generate files;,o;-;.F;/i ;0i ;@;I"Flak::Generate;F;>o;? ;@0;A0;B0; ;C;@;D0;20;"To; ;IC;[o;#;$;%;;;I"Flak::TargetFile.tool;F;&[[" name0[" options"{}; [["!lib/flak/thor/target_file.rbi!; T; ;e;;;[;IC;"fGenerate a tool.yml target file according to options given by the user, usually through a wizard. ;F;@;0;F;[;[o;( ;)I" param;F;*I"name of the tool.;F; I" name;F;+[I" String;F;@o;( ;)I" param;F;*I"the options.;F; I" options;F;+[I" Hash;F;@o;S ;)I" option;F;*0; I" options;F;+0;To;U ;)I" option;F;*I";Do; ;IC;[ o;#;$;:;;;I"'Flak::Template::MergeEngine#infuse;F;&[[" target0; [[",lib/flak/rake/templates/merge_engine.rbi ; F; : infuse;;;[;IC;" ;F;@Z;0;F;[;[;I";F;@X; "def infuse target settings = target.settings flat = flatten_yaml settings settings = settings.flak_merge(flat) module_mods = settings_modifications(settings) target.settings = settings.flak_merge(module_mods) end;I"def infuse(target);F;1T;"To;#;$;%;;;I"2Flak::Template::MergeEngine.flatten_yaml_file;F;&[[" settings0[" file0; [[@ai; T; :flatten_yaml_file;;;[;IC;"asubstutute environment variables in yaml file and faltten out the os and configuration keys. ;F;@i;0;F;[;[;I"asubstutute environment variables in yaml file and faltten out the os and configuration keys.;F;,o;-;.F;/i;0i;@X; "def self.flatten_yaml_file(settings, file) if File.exists? file content = File.open(file, "rb").read.substitute_env_vars yml = YAML::load(content) || {} yml.flak_flatten(settings[:configuration], settings[:os]) else {} end end;I"def flatten_yaml_file(.);F;1T;20;"To;#;$;:;;;I"-Flak::Template::MergeEngine#flatten_yaml;F;&[[" settings0; [[@ai!; T; :flatten_yaml;;;[;IC;"Iopen the yaml file associated with the current module and flatten it ;F;@z;0;F;[;[;"Iopen the yaml file associated with the current module and flatten it;,o;-;.F;/i ;0i ;@X; "def flatten_yaml settings file = settings[:root] + '/config/'+self.name.split("::")[2].underscoreize+'.yml' Flak::Template::MergeEngine.flatten_yaml_file(settings,file) end;I"def flatten_yaml(settings);F;1T;20;"To;#;$;:;;;I"7Flak::Template::MergeEngine#settings_modifications;F;&[[" settings0; [[@ai); T; :settings_modifications;;;[;IC;"3fallback modifications method for #{self.name} ;F;@;0;F;[;[;"3fallback modifications method for #{self.name};,o;-;.F;/i(;0i(;@X; "1def settings_modifications settings {} end;I")def settings_modifications(settings);F;1T;20;"T;4@X;5IC;[;4@X;6IC;[;4@X;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ai; F; ;l;;;;;[;IC;" ;F;@X;0;F;[;[;I";F;@>;I" Flak::Template::MergeEngine;F;"T;4@B;6IC;[;4@B;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Ki ; F; : Settings;;;;;[;IC;" ;F;@B;0;F;[;[;I";F;@@;I"!Flak::Template::Gl::Settings;F;"To; ;IC;[;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Ki; F; : Tasks;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@@;I"Flak::Template::Gl::Tasks;F;"T;4@@;5IC;[;4@@;6IC;[;4@@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Ki; F; :Gl;;;;;[;IC;" ;F;@@;0;F;[;[;I";F;@>;I"Flak::Template::Gl;F;"To; ;IC;[o; ;IC;[ o;#;$;%;;;I"+Flak::Template::Doc::Settings.extended;F;&[[" target0; [["#lib/flak/rake/templates/doc.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I"9Flak::Template::Doc::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def self.settings_modifications settings mods = Hash.new bind = binding() Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("settings[:release_root]", "String", bind,__FILE__) mods[:doc_directory_name] = "#{settings[:product_revision]}-doc" mods[:doc_destination] = File.join( settings[:release_root] , mods[:doc_directory_name] ) mods end;I""def settings_modifications(.);F;1T;"To;#;$;:;;;I"3Flak::Template::Doc::Settings#doc_default_hash;F;&[[" item0; [[@i!; F; :doc_default_hash;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def doc_default_hash(item) bind = binding() Flak::Errors.assert("@settings[:product_name]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:author_name]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:author_email]", "String", bind,__FILE__) { :title => "#{@settings[:product_name].capitalize} #{item[:type]}", :description=> "#{@settings[:product_name].capitalize} #{@settings[:product_revision]} #{item[:type]}", :author=> @settings[:author_name], :email=> @settings[:author_email], :created_at => Time.now.strftime("%d %B %Y") } end;I"def doc_default_hash(item);F;1T;"To;#;$;:;;;I"4Flak::Template::Doc::Settings#doc_plug_metadata;F;&[[" site0; [[@i2; F; :doc_plug_metadata;;;[;IC;" ;F;@;0;F;[;[;I";F;@; ".def doc_plug_metadata(site) site.items.each do |item| unless item.binary? item[:type] = "Index" if item.identifier == "/" item[:type] = "Release Notes" if item.identifier == "/release_notes/" item.attributes= doc_default_hash(item).merge(item.attributes) end end end;I" def doc_plug_metadata(site);F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I""Flak::Template::Doc::Settings;F;"To; ;IC;[o;#;$;%;;;I"(Flak::Template::Doc::Tasks.extended;F;&[[" target0; [[@iA; F; ;k;;;[;IC;" ;F;@';0;F;[;[o;( ;)I" private;F;*0; 0;+0;@';I";F;@%; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I",Flak::Template::Doc::Tasks.task_factory;F;&[[" target0; [[@iG; F; :task_factory;;;[;IC;" ;F;@7;0;F;[;[;I";F;@%; "def self.task_factory target settings = target.settings desc "Release documentation" task :doc do docroot = File.join(settings[:root],'doc') Dir.chdir(docroot) do |d| site = Nanoc::Site.new(YAML.load_file('config.yaml')) site.config[:output_dir] = settings[:doc_destination] target.doc_plug_metadata(site) puts "Compiling site..." site.compile puts "Done... ;)" end end namespace :doc do desc "Build and tar up documentation to tar.gz." task :tar => :doc do Dir.chdir( settings[:tools_directory] ) do |d| sh "tar cfz #{settings[:product_name]}-#{settings[:product_revision]}-doc.tar.gz #{settings[:product_name]}/#{settings[:product_revision]}-doc" end end end end;I"def task_factory(.);F;1T;"T;4@%;5IC;[;4@%;6IC;[;4@%;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i?; F; ;r;;;;;[;IC;" ;F;@%;0;F;[;[;I";F;@;I"Flak::Template::Doc::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; :Doc;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Doc;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"+Flak::Template::Max::Settings.extended;F;&[[" target0; [["#lib/flak/rake/templates/max.rbi; F; ;k;;;[;IC;" ;F;@g;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@g;I";F;@e; "1def self.extended target infuse target end;I"def extended(.);F;1T;"T;4@e;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@e; ;l;@>;D@X;4@e;6IC;[;4@e;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ni ; F; ;q;;;;;[;IC;" ;F;@e;0;F;[;[;I";F;@c;I""Flak::Template::Max::Settings;F;"To; ;IC;[;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ni; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@c;I"Flak::Template::Max::Tasks;F;"T;4@c;5IC;[;4@c;6IC;[;4@c;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ni; F; :Max;;;;;[;IC;" ;F;@c;0;F;[;[;I";F;@>;I"Flak::Template::Max;F;"To; ;IC;[o; ;IC;[ o;#;$;%;;;I"+Flak::Template::Cpp::Settings.extended;F;&[[" target0; [["#lib/flak/rake/templates/cpp.rbi ; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;:;;;I"1Flak::Template::Cpp::Settings#build_filename;F;&[; [[@i; T; :build_filename;;;[;IC;"|these methods will become instance methods of the target and as such will have access to te @settings instance variable ;F;@;0;F;[;[;I"}these methods will become instance methods of the target and as such will have access to te @settings instance variable ;F;,o;-;.F;/i;0i;@; "qdef build_filename bind = binding() Flak::Errors.assert("@settings[:build_directory]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:name]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:target_extension]", "String", bind,__FILE__) File.join(@settings[:build_directory],'products',@settings[:name].ext(@settings[:target_extension])) end;I"def build_filename( );F;1T;20;"To;#;$;:;;;I"3Flak::Template::Cpp::Settings#release_filename;F;&[; [[@i; F; :release_filename;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def release_filename bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) File.join( @settings[:path_to_revision], 'bin', build_filename.pathmap('%f')) end;I"def release_filename( );F;1T;"To;#;$;:;;;I".Flak::Template::Cpp::Settings#object_file;F;&[[" source0; [[@i&; T; :object_file;;;[;IC;"mgenerate path to object file from source: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/animal/sensor.o" ;F;@;0;F;[;[;"mgenerate path to object file from source: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/animal/sensor.o";,o;-;.F;/i%;0i%;@; "2def object_file(source) bind = binding() Flak::Errors.assert("@settings[:build_directory]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:object_extension]", "String", bind,__FILE__) File.join(@settings[:build_directory], source.gsub("/src/","/").ext( @settings[:object_extension] )) end;I"def object_file(source);F;1T;20;"To;#;$;:;;;I"/Flak::Template::Cpp::Settings#object_files;F;&[; [[@i.; T; :object_files;;;[;IC;"-collect all object files for this target ;F;@;0;F;[;[;"-collect all object files for this target;,o;-;.F;/i-;0i-;@; "Sdef object_files @settings[:source_files].collect { |s| object_file(s) } end;I"def object_files( );F;1T;20;"To;#;$;:;;;I"0Flak::Template::Cpp::Settings#c_compile_cmd;F;&[[" source0; [[@i2; F; :c_compile_cmd;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def c_compile_cmd(source) bind = binding() Flak::Errors.assert("@settings[:compiler]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:object_flag]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:include_flag]", "String", bind,__FILE__) compiler = "\"#{@settings[:compiler]}\"" object = "#{@settings[:object_flag]}\"#{object_file(source)}\"" source = "\"#{source}\"" inc_path = (@settings[:source_files].collect {|f| f.pathmap('%d')}.uniq | ( @settings[:include_paths] || [] )).collect { |el| "#{@settings[:include_flag]}\"#{el.to_s}\"" }.join(" ") includes = ( @settings[:includes] || [] ).collect { |el| "-include \"#{el.to_s}\"" }.join(" ") compiler_options = (@settings[:compiler_options] || [] ).collect { |el| el.to_s }.join(" ") # puts "*" * 80 # puts @settings[:compiler_options] # puts "*" * 80 "#{compiler} #{compiler_options} #{source} #{object} #{inc_path} #{includes}" end;I"def c_compile_cmd(source);F;1T;"To;#;$;:;;;I"-Flak::Template::Cpp::Settings#c_link_cmd;F;&[; [[@iE; F; :c_link_cmd;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def c_link_cmd bind = binding() Flak::Errors.assert("@settings[:linker]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:lib_flag]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:lib_ext]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:libpath_flag]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:framework_flag]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:outputfile_flag]", "String", bind,__FILE__) linker = "\"#{@settings[:linker]}\"" objects = object_files.collect { |el| "\"#{el.to_s}\"" }.join(" ") # libstr = ((@settings[:libs] || []).collect { |el| "-l#{el.to_s}" } | (@settings[:static_libs] || []).collect { |el| "#{@settings[:static_prefix_flag]} -l#{el.to_s}" }).join(" ") libstr = (@settings[:libs] || []).collect { |el| "#{@settings[:lib_flag]}#{el.to_s}#{@settings[:lib_ext]}" }.join(" ") libpathstr = (@settings[:lib_paths] || []).collect { |el| "#{@settings[:libpath_flag]}\"#{el.to_s}\"" }.join(" ") linkflagstr = ( @settings[:linker_options] || [] ).collect { |el| el.to_s }.join(" ") dso_flagstr = (@settings[:dso_options] || [] ).collect { |el| el.to_s }.join(" ") fwrk = (@settings[:frameworks] || [] ).collect { |el| "#{@settings[:framework_flag]} #{el.to_s}" }.join(" ") "#{linker} #{dso_flagstr} #{linkflagstr} #{libpathstr} #{libstr} #{fwrk} #{@settings[:outputfile_flag]}\"#{build_filename}\" #{objects}" end;I"def c_link_cmd( );F;1T;"To;#;$;:;;;I".Flak::Template::Cpp::Settings#c_clean_cmd;F;&[; [[@i[; F; :c_clean_cmd;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@; "~def c_clean_cmd objects = object_files.collect { |el| "\"#{el.to_s}\"" } "rm -f \"#{build_filename}\" #{objects}" end;I"def c_clean_cmd( );F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I""Flak::Template::Cpp::Settings;F;"To; ;IC;[o;#;$;%;;;I"(Flak::Template::Cpp::Tasks.extended;F;&[[" target0; [[@ik; F; ;k;;;[;IC;" ;F;@,;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@,;I";F;@*; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I",Flak::Template::Cpp::Tasks.task_factory;F;&[[" target0; [[@ip; F; ;v;;;[;IC;" ;F;@<;0;F;[;[;I";F;@*; " def self.task_factory target settings = target.settings files = settings[:source_files] unless files.nil? # file tasks to compile objects from sources # make sure the object file depends on the # source and header if it exists ###################################################### files.each do |f| object = target.object_file(f) file object => f do |t| target.make_directory_for(object) sh target.c_compile_cmd(f) end header = f.ext('h') file object => header if File.exists?(header) end ###################################################### # file tasks to link targets ###################################################### objects = target.object_files build_file = target.build_filename file build_file => objects do target.make_directory_for(build_file) sh target.c_link_cmd end namespace settings[:name].to_sym do desc "build the #{settings[:name].to_sym} binary" task :build => build_file # add named target end task :build => "#{settings[:name].to_sym}:build" ###################################################### # tasks to clean the build ###################################################### namespace settings[:name].to_sym do desc "clean the #{settings[:name].to_sym} build files" task :clean do sh target.c_clean_cmd end end task :clean => "#{settings[:name].to_sym}:clean" ###################################################### # plugins and executables release tasks ###################################################### release_binary = target.release_filename build_file = target.build_filename file release_binary => build_file do target.make_directory_for(release_binary) rm_r release_binary if File.exists?(release_binary) cp build_file, release_binary File.chmod 0755, release_binary end ###################################################### # add the release_binary file task to the tool's release task # and add the tool's release task to the release task # in the global namespace ###################################################### namespace settings[:name].to_sym do task :release => release_binary end task :release => "#{settings[:name].to_sym}:release" ###################################################### end end;I"def task_factory(.);F;1T;"T;4@*;5IC;[;4@*;6IC;[;4@*;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ij; F; ;r;;;;;[;IC;" ;F;@*;0;F;[;[;I";F;@;I"Flak::Template::Cpp::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; :Cpp;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Cpp;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"+Flak::Template::Mac::Settings.extended;F;&[[" target0; [["#lib/flak/rake/templates/mac.rbi ; F; ;k;;;[;IC;" ;F;@l;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@l;I";F;@j; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;:;;;I"7Flak::Template::Mac::Settings#mac_app_release_path;F;&[[" file0; [[@si; F; :mac_app_release_path;;;[;IC;" ;F;@};0;F;[;[;I";F;@j; "hdef mac_app_release_path(file) bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:product_revision]", "String", bind,__FILE__) File.join(@settings[:path_to_revision], 'bin', "#{file.pathmap('%f').pathmap('%X')}-#{@settings[:product_revision]}#{file.pathmap('%x')}") end;I"#def mac_app_release_path(file);F;1T;"T;4@j;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@j; ;l;@>;D@X;4@j;6IC;[;4@j;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@si ; F; ;q;;;;;[;IC;" ;F;@j;0;F;[;[;I";F;@h;I""Flak::Template::Mac::Settings;F;"To; ;IC;[;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@si; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@h;I"Flak::Template::Mac::Tasks;F;"T;4@h;5IC;[;4@h;6IC;[;4@h;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@si; F; :Mac;;;;;[;IC;" ;F;@h;0;F;[;[;I";F;@>;I"Flak::Template::Mac;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I",Flak::Template::Nuke::Settings.extended;F;&[[" target0; [["$lib/flak/rake/templates/nuke.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I":Flak::Template::Nuke::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def self.settings_modifications settings bind = binding() Flak::Errors.assert("settings[:os]", "String", bind,__FILE__) Flak::Errors.assert("settings[:path_to_revision]", "String", bind,__FILE__) Flak::Errors.assert("settings[:nuke_version]", "String", bind,__FILE__) mods = Hash.new case settings[:os] when /linux_64/ mods[:nuke_location] = "" when /darwin/ mods[:nuke_location] = "/Applications/Nuke#{settings[:nuke_version]}-32/Nuke#{settings[:nuke_version]}.app/Contents" when /win_64/ mods[:nuke_location] = "" end msg = 'Problem creating mods[:nuke_release_path] from: settings[:path_to_revision],"nuke"' mods[:nuke_release_path] = File.join(settings[:path_to_revision],"nuke" ) mods end;I""def settings_modifications(.);F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"#Flak::Template::Nuke::Settings;F;"To; ;IC;[;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i4; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I" Flak::Template::Nuke::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; : Nuke;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Nuke;F;"To; ;IC;[o; ;IC;[ o;#;$;%;;;I",Flak::Template::Maya::Settings.extended;F;&[[" target0; [["$lib/flak/rake/templates/maya.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I":Flak::Template::Maya::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@%;0;F;[;[;I";F;@; "def self.settings_modifications settings maya_string ='' case settings[:os] when /linux_64/ maya_string = "maya#{settings[:maya_version]}-x64" when /darwin/ maya_string = "maya#{settings[:maya_version]}" when /win_64/ maya_string = "Maya#{settings[:maya_version]}" end mods = Hash.new bind = binding() Flak::Errors.assert("settings[:autodesk_location]", "String", bind,__FILE__) Flak::Errors.assert("settings[:path_to_revision]", "String", bind,__FILE__) mods[:maya_location] = File.join( settings[:autodesk_location],maya_string ) mods[:maya_release_path] = File.join( settings[:path_to_revision],"maya" ) mods end;I""def settings_modifications(.);F;1T;"To;#;$;:;;;I"@Flak::Template::Maya::Settings#outliner_icon_build_filename;F;&[[" file0; [[@i=; T; :!outliner_icon_build_filename;;;[;IC;"def maya_icon_destination(file) File.join(@settings[:maya_release_path] ,'icons', file.pathmap('%f').no_erb) end def maya_script_destination(file) File.join(@settings[:maya_release_path] , 'scripts', file.pathmap('%f').no_erb) end def maya_scripted_plugin_destination(file) File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb) end def maya_precompiled_plugin_destination(file) File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb) end ;F;@3;0;F;[;[;I" def maya_icon_destination(file) File.join(@settings[:maya_release_path] ,'icons', file.pathmap('%f').no_erb) end def maya_script_destination(file) File.join(@settings[:maya_release_path] , 'scripts', file.pathmap('%f').no_erb) end def maya_scripted_plugin_destination(file) File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb) end def maya_precompiled_plugin_destination(file) File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb) end;F;,o;-;.F;/i,;0i;;@; "Tdef outliner_icon_build_filename(file) icon_build_filename("out_#{file}") end;I"+def outliner_icon_build_filename(file);F;1T;20;"To;#;$;:;;;I":Flak::Template::Maya::Settings#dg_icon_build_filename;F;&[[" file0; [[@iA; F; :dg_icon_build_filename;;;[;IC;" ;F;@B;0;F;[;[;I";F;@; "Edef dg_icon_build_filename(file) icon_build_filename(file) end;I"%def dg_icon_build_filename(file);F;1T;"To;#;$;:;;;I"7Flak::Template::Maya::Settings#icon_build_filename;F;&[[" file0; [[@iE; F; :icon_build_filename;;;[;IC;" ;F;@P;0;F;[;[;I";F;@; "def icon_build_filename(file) bind = binding() Flak::Errors.assert("@settings[:build_directory]", "String", bind,__FILE__) File.join(@settings[:build_directory],'icons', file.pathmap('%f').ext('xpm') ) end;I""def icon_build_filename(file);F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"#Flak::Template::Maya::Settings;F;"To; ;IC;[ o;#;$;%;;;I")Flak::Template::Maya::Tasks.extended;F;&[[" target0; [[@iR; F; ;k;;;[;IC;" ;F;@q;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@q;I";F;@o; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I"9Flak::Template::Maya::Tasks.generate_node_icon_tasks;F;&[[" target0; [[@iX; F; :generate_node_icon_tasks;;;[;IC;" ;F;@;0;F;[;[;I";F;@o; "+def self.generate_node_icon_tasks target settings = target.settings source_files = settings[:maya_node_icon_files] unless source_files.nil? source_files.each do |f| ['outliner','dg'].each do |t| build_file = target.send "#{t}_icon_build_filename", f dest_file = target.destination_filepath( settings[:maya_icon_destination], build_file) file build_file => f do |t| target.make_directory_for(build_file) cmd_key = "#{t}_icon_convert_cmd".to_sym cmd = "#{settings[cmd_key]} #{f} #{build_file}" sh cmd end file dest_file => build_file do |t| target.make_directory_for(dest_file) cp build_file, dest_file end task :release => dest_file end end end end;I"$def generate_node_icon_tasks(.);F;1T;"To;#;$;%;;;I"4Flak::Template::Maya::Tasks.generate_icon_tasks;F;&[[" target0; [[@i~; F; :generate_icon_tasks;;;[;IC;" ;F;@;0;F;[;[;I";F;@o; "def self.generate_icon_tasks target settings = target.settings source_files = settings[:maya_icon_files] unless source_files.nil? source_files.each do |f| build_file = target.icon_build_filename f dest_file = target.destination_filepath( settings[:maya_icon_destination], build_file) file build_file => f do |t| target.make_directory_for(build_file) cmd = "#{settings[:icon_convert_cmd]} #{f} #{build_file}" sh cmd end file dest_file => build_file do |t| target.make_directory_for(dest_file) cp build_file, dest_file end task :release => dest_file end end end;I"def generate_icon_tasks(.);F;1T;"To;#;$;%;;;I"-Flak::Template::Maya::Tasks.task_factory;F;&[[" target0; [[@i; T; ;v;;;[;IC;"generate tasks here ;F;@;0;F;[;[;I"generate tasks here ;F;,o;-;.F;/i;0i;@o; "def self.task_factory target settings = target.settings self.generate_node_icon_tasks target self.generate_icon_tasks target end;I"def task_factory(.);F;1T;20;"T;4@o;5IC;[;4@o;6IC;[;4@o;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@iO; F; ;r;;;;;[;IC;" ;F;@o;0;F;[;[;I";F;@;I" Flak::Template::Maya::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; : Maya;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Maya;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"-Flak::Template::Shell::Settings.extended;F;&[[" target0; [["%lib/flak/rake/templates/shell.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;:;;;I"=Flak::Template::Shell::Settings#shell_script_destination;F;&[[" file0; [[@i; F; :shell_script_destination;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def shell_script_destination(file) bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) File.join(@settings[:path_to_revision], 'bin', file.pathmap('%f')) end;I"'def shell_script_destination(file);F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"$Flak::Template::Shell::Settings;F;"To; ;IC;[o;#;$;%;;;I"*Flak::Template::Shell::Tasks.extended;F;&[[" target0; [[@i'; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I".Flak::Template::Shell::Tasks.task_factory;F;&[[" target0; [[@i+; F; ;v;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "Cdef self.task_factory target settings = target.settings end;I"def task_factory(.);F;1T;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i%; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"!Flak::Template::Shell::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; : Shell;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Shell;F;"To; ;IC;[o; ;IC;[ o;#;$;%;;;I"/Flak::Template::Release::Settings.extended;F;&[[" target0; [["'lib/flak/rake/templates/release.rbi; F; ;k;;;[;IC;" ;F;@@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@@;I";F;@>; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;:;;;I"AFlak::Template::Release::Settings#release_script_destination;F;&[[" file0; [[@Gi; F; :release_script_destination;;;[;IC;" ;F;@Q;0;F;[;[;I";F;@>; "def release_script_destination(file) bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) File.join( @settings[:path_to_revision], 'bin', file.pathmap('%f').no_erb ) end;I")def release_script_destination(file);F;1T;"To;#;$;:;;;I"3Flak::Template::Release::Settings#tar_filename;F;&[; [[@Gi"; F; :tar_filename;;;[;IC;" ;F;@_;0;F;[;[;I";F;@>; "def tar_filename bind = binding() Flak::Errors.assert("@settings[:product_name]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:os]", "String", bind,__FILE__) n = "#{@settings[:product_name]}-#{@settings[:product_revision]}" n += "-#{@settings[:os]}" unless @settings[:agnostic] n += ".tar.gz" n end;I"def tar_filename( );F;1T;"To;#;$;:;;;I"2Flak::Template::Release::Settings#file_to_tar;F;&[; [[@Gi.; F; :file_to_tar;;;[;IC;" ;F;@k;0;F;[;[;I";F;@>; "def file_to_tar bind = binding() Flak::Errors.assert("@settings[:product_name]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("@settings[:os]", "String", bind,__FILE__) n = "#{@settings[:product_name]}/#{@settings[:product_revision]}" n += "-#{@settings[:os]}" unless @settings[:agnostic] n end;I"def file_to_tar( );F;1T;"T;4@>;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@>; ;l;@>;D@X;4@>;6IC;[;4@>;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Gi; F; ;q;;;;;[;IC;" ;F;@>;0;F;[;[;I";F;@<;I"&Flak::Template::Release::Settings;F;"To; ;IC;[o;#;$;%;;;I",Flak::Template::Release::Tasks.extended;F;&[[" target0; [[@GiA; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I"0Flak::Template::Release::Tasks.task_factory;F;&[[" target0; [[@GiE; F; ;v;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def self.task_factory target settings = target.settings desc "Build everything" task :build CLEAN.include( File.dirname(settings[:build_directory]) ) CLOBBER.include( settings[:path_to_revision]) desc "Release everything" task :default => ["release"] desc "Build and tar up product to tar.gz." task :tar => :release do Dir.chdir( settings[:tools_directory] ) do |d| sh "tar cfz #{target.tar_filename} #{target.file_to_tar}" end end end;I"def task_factory(.);F;1T;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Gi?; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@<;I"#Flak::Template::Release::Tasks;F;"T;4@<;5IC;[;4@<;6IC;[;4@<;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Gi; F; : Release;;;;;[;IC;" ;F;@<;0;F;[;[;I";F;@>;I"Flak::Template::Release;F;"To; ;IC;[o; ;IC;[ o;#;$;%;;;I"/Flak::Template::Delight::Settings.extended;F;&[[" target0; [["'lib/flak/rake/templates/delight.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I"=Flak::Template::Delight::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def self.settings_modifications settings mods = Hash.new bind = binding() Flak::Errors.assert("settings[:delight_location]", "String", bind,__FILE__) Flak::Errors.assert("settings[:delight_version]", "String", bind,__FILE__) Flak::Errors.assert("settings[:build_directory]", "String", bind,__FILE__) v_loc = File.join( "#{settings[:delight_location]}-#{settings[:delight_version]}" ) mods[:lib_paths] = [ File.join( v_loc ,"lib") ] mods[:include_paths] = [ File.join( v_loc ,"include")] mods[:shader_compiler] = File.join( v_loc, "bin","shaderdl") mods[:shader_build_directory] = settings[:build_directory] mods[:libs] = ["3delight"] mods[:shader_include_paths] = [ File.join( v_loc, "maya","rsl")] mods end;I""def settings_modifications(.);F;1T;"To;#;$;:;;;I"3Flak::Template::Delight::Settings#shader_files;F;&[; [[@i2; T; :shader_files;;;[;IC;"all shader build files ;F;@;0;F;[;[;"all shader build files;,o;-;.F;/i1;0i1;@; "Qdef shader_files() @settings[:sl_files].collect { |f| shader_file(f) } end;I"def shader_files( );F;1T;20;"To;#;$;:;;;I"2Flak::Template::Delight::Settings#shader_file;F;&[[" source0; [[@i8; T; :shader_file;;;[;IC;"Vpath to shader build: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/goosebump.sdl ;F;@;0;F;[;[;"Vpath to shader build: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/goosebump.sdl;,o;-;.F;/i7;0i7;@; "def shader_file(source) bind = binding() Flak::Errors.assert("@settings[:shader_build_directory]", "String", bind,__FILE__) File.join(@settings[:shader_build_directory], source.gsub("/src/","/").ext('sdl')) end;I"def shader_file(source);F;1T;20;"To;#;$;:;;;I":Flak::Template::Delight::Settings#shader_release_path;F;&[[" file0; [[@i?; F; :shader_release_path;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def shader_release_path(file) bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) File.join(@settings[:path_to_revision] , 'delight','shader', file.pathmap('%f')) end;I""def shader_release_path(file);F;1T;"To;#;$;:;;;I"AFlak::Template::Delight::Settings#delight_shader_compile_cmd;F;&[[" dest0["src0; [[@iF; F; :delight_shader_compile_cmd;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def delight_shader_compile_cmd(dest,src) bind = binding() Flak::Errors.assert("@settings[:shader_compiler]", "String", bind,__FILE__) include_path_string = (@settings[:sl_files].collect {|f| f.pathmap('%d')}.uniq | ( @settings[:shader_include_paths] || [] )).collect { |el| "-I#{el.to_s}" }.join(" ") shader_type_string = "-DSHADER_TYPE_#{src.pathmap('%d').pathmap('%f')}" "#{@settings[:shader_compiler]} #{shader_type_string} #{include_path_string} -d #{dest} #{src}" end;I"-def delight_shader_compile_cmd(dest,src);F;1T;"To;#;$;:;;;I"8Flak::Template::Delight::Settings#delight_clean_cmd;F;&[; [[@iP; F; :delight_clean_cmd;;;[;IC;" ;F;@#;0;F;[;[;I";F;@; "9def delight_clean_cmd "rm -f #{shader_files}" end;I"def delight_clean_cmd( );F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"&Flak::Template::Delight::Settings;F;"To; ;IC;[o;#;$;%;;;I",Flak::Template::Delight::Tasks.extended;F;&[[" target0; [[@i^; F; ;k;;;[;IC;" ;F;@B;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@B;I";F;@@; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I"0Flak::Template::Delight::Tasks.task_factory;F;&[[" target0; [[@ic; F; ;v;;;[;IC;" ;F;@R;0;F;[;[;I";F;@@; "def self.task_factory target settings = target.settings files = settings[:sl_files] unless files.nil? files.each do |f| # file tasks to build shader from sources ###################################################### target_shader = target.shader_file(f) file target_shader => f do |t| dest = target.make_directory_for(target_shader) sh delight_shader_compile_cmd(dest,f) end namespace settings[:name].to_sym do desc "build the #{settings[:name].to_sym} delight shaader" task :build => target_shader end task :build => "#{settings[:name].to_sym}:build" ###################################################### # file tasks to release shaders ###################################################### release_shader = target.shader_release_path(target_shader) file release_shader => target_shader do target.make_directory_for(release_shader) cp target_shader, release_shader end namespace settings[:name].to_sym do task :release => release_shader end task :release => "#{settings[:name].to_sym}:release" ###################################################### end # task to clean the build files ###################################################### namespace settings[:name].to_sym do desc "clean the #{settings[:name].to_sym} build files" task :clean do sh delight_clean_cmd end end task :clean => "#{settings[:name].to_sym}:clean" ###################################################### end end;I"def task_factory(.);F;1T;"T;4@@;5IC;[;4@@;6IC;[;4@@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i]; F; ;r;;;;;[;IC;" ;F;@@;0;F;[;[;I";F;@;I"#Flak::Template::Delight::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; : Delight;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I"Flak::Template::Delight;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"/Flak::Template::MayaApp::Settings.extended;F;&[[" target0; [["(lib/flak/rake/templates/maya_app.rbi; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I"=Flak::Template::MayaApp::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "def self.settings_modifications settings mods = Hash.new bind = binding() Flak::Errors.assert("settings[:maya_relative_lib_path]", "String", bind,__FILE__) Flak::Errors.assert("settings[:maya_location]", "String", bind,__FILE__) Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("settings[:author_name]", "String", bind,__FILE__) lib_path = File.join( settings[:maya_location], settings[:maya_relative_lib_path], {:key => 'lib_path'}) mods[:lib_paths] = [ lib_path ] case settings[:os] when /linux_64/ mods[:linker_options] = [ "-Wl,-rpath,#{lib_path}" ] mods[:include_paths] = [ File.join( settings[:maya_location], "include" ) ] when /darwin/ mods[:linker_options] = [ "-Wl,-executable_path,#{lib_path}" ] mods[:include_paths] = [ File.join(settings[:maya_location],"devkit", "include" ) ] when /win_64/ mods[:linker_options] = [] mods[:include_paths] = [ File.join(settings[:maya_location], "include" ) ] end mods[:compiler_options] = [ "-D\"PLUGIN_VERSION=\\\"#{settings[:product_revision]}\\\"\"", "-D\"PLUGIN_VENDOR=\\\"#{settings[:author_name].gsub(' ','')}\\\"\"", "-D\"MAYA_VERSION=\\\"#{settings[:maya_version]}\\\"\"" ] mods end;I""def settings_modifications(.);F;1T;"To;#;$;:;;;I"7Flak::Template::MayaApp::Settings#release_filename;F;&[; [[@iL; T; ;z;;;[;IC;"}these methods will become instance methods of the target and as such will have access to the @settings instance variable ;F;@;0;F;[;[;I"~these methods will become instance methods of the target and as such will have access to the @settings instance variable ;F;,o;-;.F;/iI;0iK;@; "qdef release_filename File.join( @settings[:path_to_revision], 'bin', build_filename.pathmap('%f')) end;I"def release_filename( );F;1T;20;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@~;I"&Flak::Template::MayaApp::Settings;F;"To; ;IC;[;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@iZ; F; ;r;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@~;I"#Flak::Template::MayaApp::Tasks;F;"T;4@~;5IC;[;4@~;6IC;[;4@~;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; : MayaApp;;;;;[;IC;" ;F;@~;0;F;[;[;I";F;@>;I"Flak::Template::MayaApp;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"3Flak::Template::Environment::Settings.extended;F;&[[" target0; [["+lib/flak/rake/templates/environment.rbi ; F; ;k;;;[;IC;" ;F;@;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@;I";F;@; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I"AFlak::Template::Environment::Settings.settings_modifications;F;&[[" settings0; [[@i; F; ;p;;;[;IC;" ;F;@;0;F;[;[;I";F;@; "Fdef self.settings_modifications settings mods = Hash.new bind = binding() Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("settings[:os]", "String", bind,__FILE__) Flak::Errors.assert("settings[:configuration]", "String", bind,__FILE__) Flak::Errors.assert("settings[:tools_directory]", "String", bind,__FILE__) Flak::Errors.assert("settings[:product_name]", "String", bind,__FILE__) mods[:build_directory] = File.join( "build", settings[:product_revision] , settings[:os], settings[:configuration]) mods[:release_root] = File.join(settings[:tools_directory], settings[:product_name]) mods[:path_to_revision] = File.join( mods[:release_root] , settings[:product_revision] ) mods[:path_to_revision] += "-#{settings[:os]}" unless settings[:agnostic] mods end;I""def settings_modifications(.);F;1T;"To;#;$;:;;;I"?Flak::Template::Environment::Settings#destination_filepath;F;&[["relative_path0[" file0; [[@i*; F; :destination_filepath;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@; "def destination_filepath(relative_path, file) bind = binding() Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__) File.join(@settings[:path_to_revision] , relative_path , file.pathmap('%f').no_erb) end;I"2def destination_filepath(relative_path, file);F;1T;"T;4@;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@; ;l;@>;D@X;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i ; F; ;q;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@;I"*Flak::Template::Environment::Settings;F;"To; ;IC;[ o;#;$;%;;;I"0Flak::Template::Environment::Tasks.extended;F;&[[" target0; [[@i6; F; ;k;;;[;IC;" ;F;@% ;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@% ;I";F;@# ; "7def self.extended target task_factory target end;I"def extended(.);F;1T;"To;#;$;%;;;I":Flak::Template::Environment::Tasks.generate_erb_tasks;F;&[[" target0; [[@i?; T; :generate_erb_tasks;;;[;IC;" We want to release erb files by binding them using ERB. To help identify erb files we define them as Filelists in yaml files under the key _erb_files e.g. shell_erb_files or maya_script_erb_files for the identifiers: shell, and maya_script respectively ;F;@5 ;0;F;[;[;I" We want to release erb files by binding them using ERB. To help identify erb files we define them as Filelists in yaml files under the key _erb_files e.g. shell_erb_files or maya_script_erb_files for the identifiers: shell, and maya_script respectively;F;,o;-;.F;/i:;0i>;@# ; "def self.generate_erb_tasks target settings = target.settings namespace settings[:name].to_sym do erb_keys = settings.keys.find_all {|el| ( el.to_s =~ /^.*_erb_files$/)} erb_keys.each do |k| identifier = k.to_s.gsub("_erb_files", "") # shell or mel files_key = identifier.to_sym # :shell or :mel destination_path_key = "#{identifier}_destination".to_sym write_erb_opts = {:chmod => 0755} files = settings[k] unless files.nil? files.each do |f| if settings.has_key? destination_path_key destination_file = target.destination_filepath( settings[destination_path_key], f) else destination_file = target.send destination_path_key, f end file destination_file => f do target.make_directory_for(destination_file) target.write_erb_template(f,destination_file,write_erb_opts) end # desc "bind and release ERB #{destination_file.pathmap('%f')}" task destination_file.pathmap('%f') => destination_file task :release => destination_file.pathmap('%f') end end end end end;I"def generate_erb_tasks(.);F;1T;20;"To;#;$;%;;;I";Flak::Template::Environment::Tasks.generate_copy_tasks;F;&[[" target0; [[@ik; F; :generate_copy_tasks;;;[;IC;" ;F;@D ;0;F;[;[;I";F;@# ; "def self.generate_copy_tasks target settings = target.settings namespace settings[:name].to_sym do # copy_keys is an array of keys representing file types that should be copied # for example maya_script_copy_files # If so, there should be a proc called maya_script_release_path which is responsible for generating the release path # this smells a bit - not sure if it can be fixed - we will see ############################################## copy_keys = settings.keys.find_all {|el| ( el.to_s =~ /^.*_copy_files$/)} copy_keys.each do |k| identifier = k.to_s.gsub("_copy_files", "") # destination_path_proc = "#{identifier}_destination".to_sym destination_path_key = "#{identifier}_destination".to_sym files = settings[k] unless files.nil? files.each do |f| if settings.has_key? destination_path_key destination_file = target.destination_filepath(settings[destination_path_key], f) else destination_file = target.send destination_path_key, f end file destination_file => f do target.make_directory_for(destination_file) sh "cp -r #{f} #{destination_file}" File.chmod 0755, destination_file end task :release => destination_file end end end ############################################## end end;I"def generate_copy_tasks(.);F;1T;"To;#;$;%;;;I"JFlak::Template::Environment::Tasks.generate_inspect_and_release_tasks;F;&[[" target0; [[@i; F; :'generate_inspect_and_release_tasks;;;[;IC;" ;F;@R ;0;F;[;[;I";F;@# ; "def self.generate_inspect_and_release_tasks target settings = target.settings namespace settings[:name].to_sym do desc "See resolved configuration settings for #{settings[:name].to_sym}" task :inspect do ap settings end desc "Release #{settings[:name].to_sym}" task :release end task :release => "#{settings[:name].to_sym}:release" end;I".def generate_inspect_and_release_tasks(.);F;1T;"To;#;$;%;;;I"4Flak::Template::Environment::Tasks.task_factory;F;&[[" target0; [[@i; F; ;v;;;[;IC;" ;F;@` ;0;F;[;[;I";F;@# ; "def self.task_factory target self.generate_erb_tasks target self.generate_copy_tasks target self.generate_inspect_and_release_tasks target end;I"def task_factory(.);F;1T;"T;4@# ;5IC;[;4@# ;6IC;[;4@# ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i4; F; ;r;;;;;[;IC;" ;F;@# ;0;F;[;[;I";F;@;I"'Flak::Template::Environment::Tasks;F;"T;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i; F; :Environment;;;;;[;IC;" ;F;@;0;F;[;[;I";F;@>;I" Flak::Template::Environment;F;"To; ;IC;[o; ;IC;[o;#;$;%;;;I"2Flak::Template::MayaPlugin::Settings.extended;F;&[[" target0; [["+lib/flak/rake/templates/maya_plugin.rbi; F; ;k;;;[;IC;" ;F;@ ;0;F;[;[o;( ;)I" private;F;*0; 0;+0;@ ;I";F;@ ; "1def self.extended target infuse target end;I"def extended(.);F;1T;"To;#;$;%;;;I"@Flak::Template::MayaPlugin::Settings.settings_modifications;F;&[[" settings0; [[@ i; T; ;p;;;[;IC;" sksjdf ;F;@ ;0;F;[;[;" sksjdf;,o;-;.F;/i;0i;@ ; "def self.settings_modifications settings mods = Hash.new bind = binding() Flak::Errors.assert("settings[:maya_relative_lib_path]", "String", bind,__FILE__) Flak::Errors.assert("settings[:maya_location]", "String", bind,__FILE__) Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__) Flak::Errors.assert("settings[:author_name]", "String", bind,__FILE__) lib_path = File.join(settings[:maya_location], settings[:maya_relative_lib_path]) mods[:lib_paths] = [ lib_path ] case settings[:os] when /linux_64/ mods[:linker_options] = [ "-Wl,-rpath,#{lib_path}" ] mods[:include_paths] = [ File.join( settings[:maya_location], "include" ) ] when /darwin/ mods[:linker_options] = [ "-Wl,-executable_path,#{lib_path}" ] mods[:include_paths] = [ File.join(settings[:maya_location],"devkit", "include" ) ] when /win_64/ mods[:linker_options] = [] mods[:include_paths] = [ File.join(settings[:maya_location], "include" ) ] end mods[:compiler_options] = [ "-D\"PLUGIN_VERSION=\\\"#{settings[:product_revision]}\\\"\"", "-D\"PLUGIN_VENDOR=\\\"#{settings[:author_name].gsub(' ','')}\\\"\"", "-D\"MAYA_VERSION=\\\"#{settings[:maya_version]}\\\"\"" ] mods end;I""def settings_modifications(.);F;1T;20;"To;#;$;:;;;I":Flak::Template::MayaPlugin::Settings#release_filename;F;&[; [[@ iC; T; ;z;;;[;IC;"}these methods will become instance methods of the target and as such will have access to the @settings instance variable ;F;@ ;0;F;[;[;I"~these methods will become instance methods of the target and as such will have access to the @settings instance variable ;F;,o;-;.F;/i@;0iB;@ ; "~def release_filename File.join( @settings[:path_to_revision], 'maya', 'plug-ins', build_filename.pathmap('%f')) end;I"def release_filename( );F;1T;20;"T;4@ ;5IC;[o;? ;@0;A" Flak::Template::MergeEngine;B@ ; ;l;@>;D@X;4@ ;6IC;[;4@ ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ i ; F; ;q;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@ ;I")Flak::Template::MayaPlugin::Settings;F;"To; ;IC;[;4@ ;5IC;[;4@ ;6IC;[;4@ ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ iQ; F; ;r;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@ ;I"&Flak::Template::MayaPlugin::Tasks;F;"T;4@ ;5IC;[;4@ ;6IC;[;4@ ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ i; F; :MayaPlugin;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@>;I"Flak::Template::MayaPlugin;F;"T@X;4@>;5IC;[;4@>;6IC;[;4@>;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@Ki[@i[@ni[@i[@si[@i[@i[@i[@Gi[@i[@i [@i[@ i[@ai; F; : Template;;;;;[;IC;" ;F;@>;0;F;[;[;I";F;o;? ;@0;A0;B0; : Flak;@;D@;I"Flak::Template;F@;4@;5IC;[;4@;6IC;[;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@i [@ i[@i[@5i[@Mi[@i[@i[@i[@i; T; ;;;;;;[;IC;"|This is where we prepare a target. The target will "get" settings and methods from modules specified in the target.yml file ;F;@;0;F;[;[;I"|This is where we prepare a target. The target will "get" settings and methods from modules specified in the target.yml file;F;,o;-;.F;/i;0i;@;I" Flak;F;20o;3;IC;[ o;#;$;:;;;I"Hash#symbolize_keys;F;&[; [["lib/core_ext/hash.rbi ; T; :symbolize_keys;;;[;IC;"Turn 'keys' into :symbols ;F;@% ;0;F;[;[;"Turn 'keys' into :symbols;,o;-;.F;/i ;0i ;@# ; "def symbolize_keys inject({}) do |options, (key, value)| options[(key.to_sym rescue key) || key] = value options end end;I"def symbolize_keys( );F;1T;20;"To;#;$;:;;;I"Hash#flak_merge;F;&[[" other0; [[@* i; T; :flak_merge;;;[;IC;"Merge other into self as a normal merge, with the exception that when there are duplicate keys and the other.value is an array, make a flat uniquified array by merging both arrays together ;F;@3 ;0;F;[;[o;( ;)I" param;F;*I"the other Hash;F; I" other;F;+[I" Hash;F;@3 o;( ;)I" return;F;*I"a new Hash;F; 0;+[I" Hash;F;@3 ;I"Merge other into self as a normal merge, with the exception that when there are duplicate keys and the other.value is an array, make a flat uniquified array by merging both arrays together @param other [Hash] the other Hash @return [Hash] a new Hash;F;,o;-;.F;/i;0i;@# ; "def flak_merge(other) d = self.dup other.each do |k,v| if ( d.has_key?(k) && v.kind_of?(Array) ) d[k] = ([ self[k] ] | v.dup ).flatten.uniq else d[k] = v end end d end;I"def flak_merge(other);F;1T;20;"To;#;$;:;;;I"Hash#flak_merge_key;F;&[["key0[" value0; [[@* i+; T; :flak_merge_key;;;[;IC;"Return a value which is an object of value's type. If key is duplicate in self and value is an array, then merge it However, if value is not an array, return it, even if self[key] is an array. We do this to make sure the incoming type takes precedence same as flak_merge really ;F;@M ;0;F;[;[o;( ;)I" param;F;*I" the key;F; I"key;F;+[I" Object;F;@M o;( ;)I" param;F;*I"the value;F; I" value;F;+[I" Object;F;@M o;( ;)I" return;F;*I"+a new object of the same type as value;F; 0;+[I" Object;F;@M ;I"Return a value which is an object of value's type. If key is duplicate in self and value is an array, then merge it However, if value is not an array, return it, even if self[key] is an array. We do this to make sure the incoming type takes precedence same as flak_merge really @param key [Object] the key @param value [Object] the value @return [Object] a new object of the same type as value;F;,o;-;.F;/i#;0i*;@# ; "def flak_merge_key(key,value) if ( self.has_key?(key) && value.kind_of?(Array) ) ([ self[key] ] | value.dup ).flatten.uniq else value end end;I""def flak_merge_key(key,value);F;1T;20;"To;#;$;:;;;I"Hash#flak_flatten;F;&[["configuration0["os0; [[@* i:; T; :flak_flatten;;;[;IC;"Looks for keys that are nested under "os_*" or "configuration_*" keys or both, i.e. os_* -> configuration_*. A flattened hash is generated where only agnostic entries, or entries for the current os and configration are present. ;F;@o ;0;F;[;[o;( ;)I" param;F;*I"#the configuration. e.g.'debug';F; I"configuration;F;+[I" String;F;@o o;( ;)I" param;F;*I"the os. e.g.'darwin';F; I"os;F;+[I" String;F;@o ;I"JLooks for keys that are nested under "os_*" or "configuration_*" keys or both, i.e. os_* -> configuration_*. A flattened hash is generated where only agnostic entries, or entries for the current os and configration are present. @param configuration [String] the configuration. e.g.'debug' @param os [String] the os. e.g.'darwin';F;,o;-;.F;/i4;0i9;@# ; "def flak_flatten(configuration,os) h = Hash.new self.each do |k,v| if ( ! ((k =~/^os_.*/) || (k =~/^configuration_.*/)) ) h[k] = h.flak_merge_key(k,v) else if (k == "os_#{os}" ) v.each do |k1,v1| if (k1 =~ /^configuration_.*/ ) if (k1 == "configuration_#{configuration}" ) v1.each do |k2,v2| h[k2] = h.flak_merge_key(k2,v2) end end else h[k1] = h.flak_merge_key(k1,v1) end end else if (k == "configuration_#{configuration}" ) v.each do |k1,v1| h[k1] = h.flak_merge_key(k1,v1) end end end end end h.symbolize_keys end;I"'def flak_flatten(configuration,os);F;1T;20;"T;4@# ;5IC;[;4@# ;6IC;[;4@# ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@* i; F; : Hash;;;;;[;IC;" ;F;@# ;0;F;[;[;I";F;@;I" Hash;F;>o;? ;@0;A0;B0; ;Z;@;D0o;3;IC;[ o;#;$;:;;;I"String#camelize;F;&[; [["lib/core_ext/string.rbi ; T; : camelize;;;[;IC;"$Find words, capitalize and join ;F;@ ;0;F;[;[o;( ;)I" return;F;*I"camel cased string;F; 0;+[I" String;F;@ ;I"HFind words, capitalize and join @return [String] camel cased string;F;,o;-;.F;/i;0i ;@ ; "Kdef camelize self.split(/[^a-z0-9]/i).map{|w| w.capitalize}.join end;I"def camelize( );F;1T;20;"To;#;$;:;;;I"String#underscoreize;F;&[; [[@ i; T; :underscoreize;;;[;IC;"-Find words breaks and insert underscores ;F;@ ;0;F;[;[o;( ;)I" return;F;*I"underscorized string;F; 0;+[I" String;F;@ ;I"SFind words breaks and insert underscores @return [String] underscorized string;F;,o;-;.F;/i;0i;@ ; "def underscoreize self.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end;I"def underscoreize( );F;1T;20;"To;#;$;:;;;I"String#no_erb;F;&[; [[@ i; T; : no_erb;;;[;IC;"-Remove the erb extension if there is one ;F;@ ;0;F;[;[o;( ;)I" return;F;*I"!string with no erb extension;F; 0;+[I" String;F;@ ;I"[Remove the erb extension if there is one @return [String] string with no erb extension;F;,o;-;.F;/i;0i;@ ; "+def no_erb self.sub(/\.erb$/,'') end;I"def no_erb( );F;1T;20;"To;#;$;:;;;I"String#substitute_env_vars;F;&[; [[@ i'; T; :substitute_env_vars;;;[;IC;"HReplace dollar-curly braces, with the value of environment variable ;F;@ ;0;F;[;[o;( ;)I" return;F;*I"3string with all environment variables replaced;F; 0;+[I" String;F;@ ;I"Replace dollar-curly braces, with the value of environment variable @return [String] string with all environment variables replaced;F;,o;-;.F;/i$;0i&;@ ; "def substitute_env_vars str = String.new(self) str.scan(/\$\{([A-Z][A-Z,0-9,_]*)\}/).uniq.each do |m| begin str.gsub!("${#{m[0]}}", ENV[m[0]]) rescue $stderr.puts "problem with enviroment variable #{m[0]}." end end str end;I"def substitute_env_vars( );F;1T;20;"T;4@ ;5IC;[;4@ ;6IC;[;4@ ;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [[@ i; F; : String;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@;I" String;F;>o;? ;@0;A0;B0; ;Z;@;D0o; ; [["/lib/flak/thor/templates/doc/lib/helpers.rbi ; T; : TYPES;;;;;[;IC;"Add more types if you need to, for example: Houdini SOP. Then set the :type field in the yaml section at the top of each help file of that type Those pages will then appear in the sidebar menu ;F;@ ;0;F;[;[;I"Add more types if you need to, for example: Houdini SOP. Then set the :type field in the yaml section at the top of each help file of that type Those pages will then appear in the sidebar menu;F;,o;-;.F;/i;0i ;@;I" TYPES;F;i ;"iTYPES = ["Tutorial","Maya Node","Maya Plugin Command","Maya MEL Command","Nuke Node", "Nuke Script"]; "iTYPES = ["Tutorial","Maya Node","Maya Plugin Command","Maya MEL Command","Nuke Node", "Nuke Script"];!"a["Tutorial","Maya Node","Maya Plugin Command","Maya MEL Command","Nuke Node", "Nuke Script"];20o; ; [[@ i ; F; :MODULE_TYPES;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@;I"MODULE_TYPES;F;i ;"?MODULE_TYPES = ["Index", "Release Notes", "Install Guide"]; "?MODULE_TYPES = ["Index", "Release Notes", "Install Guide"];!"0["Index", "Release Notes", "Install Guide"]o;#;$;:;;;I"#movie_tag;F;&[ [" title0[" caption0[" movie0[" side0; [[@ i; T; :movie_tag;;;[;IC;"KThis helper displays a webm (HTML5) movie in a div with a title and caption. You can convert quicktime and other formats to webm with Miro Video Converter on Mac. http://blog.getmiro.com/2011/01/miro-video-converter-now-in-the-mac-app-store/ For windows and linux you'll have to search. I believe there is also an online converter ;F;@ ;0;F;[;[;I"KThis helper displays a webm (HTML5) movie in a div with a title and caption. You can convert quicktime and other formats to webm with Miro Video Converter on Mac. http://blog.getmiro.com/2011/01/miro-video-converter-now-in-the-mac-app-store/ For windows and linux you'll have to search. I believe there is also an online converter;F;,o;-;.F;/i;0i;@; "def movie_tag(title,caption,movie,side) body="" body += '
' body += "" body +='

'+title+'

' body +='

'+caption+'

' body +='
' end;I",def movie_tag(title,caption,movie,side);F;1T;20o;#;$;:;;;I"#figure_tag;F;&[ [" title0[" caption0[" image0[" side0; [[@ i(; T; :figure_tag;;;[;IC;"This helper displays an image in a div with a title and caption. The image is resized by css if it is too big, however it will be a hyperlink to the full-size image. ;F;@& ;0;F;[;[;I"This helper displays an image in a div with a title and caption. The image is resized by css if it is too big, however it will be a hyperlink to the full-size image.;F;,o;-;.F;/i&;0i';@; "def figure_tag(title,caption,image,side) figure_name = "Figure " + @figure_counter.to_s+'.' @figure_counter+=1 body="" body += '
' body += '' # body +='Image missing' body +='

'+figure_name+' '+title+'

' body +='

'+caption+'

' body +='
' end;I"-def figure_tag(title,caption,image,side);F;1T;20o;#;$;:;;;I"#toc_block;F;&[[" pages0[" heading0; [[@ i;; T; :toc_block;;;[;IC;"]create one block for the table of contents with the given array of pages and the heading ;F;@; ;0;F;[;[;"]create one block for the table of contents with the given array of pages and the heading;,o;-;.F;/i:;0i:;@; "\def toc_block(pages, heading) body ="" if pages.length > 0 body += '
' body += "

#{heading}

" body += '
    ' pages.each do |page| unless page == @item body += "
  • " if ( page.identifier == "/") body += link_to(page[:title] , "index.html") else body += link_to(page[:title] , relative_path_to(page)) end else body += '
  • ' body += page[:title] end body += "
  • " end body += '
' body += '
' end body end;I""def toc_block(pages, heading);F;1T;20o;#;$;:;;;I" #toc;F;&[; [[@ iZ; T; :toc;;;[;IC;"' end;I"def vfxoverflow_ribbon( );F;1To;#;$;:;;;I"#create_header;F;&[; [[@ iq; T; :create_header;;;[;IC;"(create markup for the header header ;F;@e ;0;F;[;[;"(create markup for the header header;,o;-;.F;/ip;0ip;@; "def create_header body = '' end;I"def create_header( );F;1T;20o;#;$;:;;;I"#create_meta;F;&[; [[@ i~; T; :create_meta;;;[;IC;"#create markup for the metadata ;F;@r ;0;F;[;[;"#create markup for the metadata;,o;-;.F;/i};0i};@; "def create_meta body = '
' @item[:description] = "Please write a description for this page" if @item[:description].nil? body += '
Description: ' body += @item[:description] body += '
' @item[:email] = "you@example.com" if @item[:email].nil? @item[:author] = "Your Name" if @item[:author].nil? body += '' body += '
Created: ' + @item[:created_at] + '
' if (! @item[:created_at].nil?) body += '
Keywords: ' + @item[:keywords] + '
' if (! @item[:keywords].nil?) body += '
Plugin: ' + @item[:plugin] + '
' if (! @item[:plugin].nil?) body += '
Test Scene: ' + @item[:test_scene] + '
' if (! @item[:test_scene].nil?) body += '
' end;I"def create_meta( );F;1T;20o; ; [[@ i; F; : LOGOS;;;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@;I" LOGOS;F;i;"LOGOS = [; "LOGOS = [ [ "www.mirovideoconverter.com" , "miro_logo_bw.png", "miro video converter"], [ "www.thefoundry.co.uk/support" , "nuke.png", "nuke support"], [ "download.autodesk.com/global/docs/maya2012/en_us/index.html" , "maya.png", "maya 2012 help"], [ "www.python.org/about/help" , "python.png", "python help"], [ "www.chaosgroup.com/en/2/support.html" , "vray.png", "vray support"], [ "renderman.pixar.com/forum/support.php" , "prman.png", "renderman support"] ];!"[ [ "www.mirovideoconverter.com" , "miro_logo_bw.png", "miro video converter"], [ "www.thefoundry.co.uk/support" , "nuke.png", "nuke support"], [ "download.autodesk.com/global/docs/maya2012/en_us/index.html" , "maya.png", "maya 2012 help"], [ "www.python.org/about/help" , "python.png", "python help"], [ "www.chaosgroup.com/en/2/support.html" , "vray.png", "vray support"], [ "renderman.pixar.com/forum/support.php" , "prman.png", "renderman support"] ]o;#;$;:;;;I" #footer;F;&[; [[@ i; F; : footer;;;[;IC;" ;F;@ ;0;F;[;[;I";F;@; " def footer str = '' str end;I"def footer( );F;1T;4@;5IC;[;4@;6IC;[o;? ;@0;A"Nanoc::Helpers::LinkTo;B@; : LinkTo;o;? ;@0;A"Nanoc::Helpers;B@; : Helpers;o;? ;@0;A0;B0; : Nanoc;@;D0;D0;D0;4@;7IC;8{;%IC;8{;9T;:IC;8{;9T;9T;;{;<[; [; F; ;;;;;;[;IC;" ;F;@;0;F;[;[;I";F;0;I";F;@:Flak::VERSION@ : Flak.os@:Flak::CLI@*;@# :Hash#symbolize_keys@% :Hash#flak_merge@3 :Hash#flak_merge_key@M :Hash#flak_flatten@o ;@ :String#camelize@ :String#underscoreize@ :String#no_erb@ :String#substitute_env_vars@ :Flak::Errors@>:Flak::Errors.assert@@:Flak::Target@~:Flak::Target#settings@:Flak::Target#settings=@:Flak::Target#initialize@:Flak::Target#build@:#Flak::Target#generate_settings@: Flak::Target#generate_tasks@:"Flak::Target#expand_filelists@:Flak::Wizard@:!Flak::Wizard.project_options@:Flak::Wizard.tool_options@:Flak::Generate@:Flak::Generate#name@:Flak::Generate#name=@: Flak::Generate#tool_options@:!Flak::Generate#tool_options=@:#Flak::Generate#project_options@ :$Flak::Generate#project_options=@:Flak::Generate.source_root@+:Flak::Generate#project@8:Flak::Generate#config@G:Flak::Generate#tool@V:Flak::Generate#plugin@e:Flak::Generate.banner@t:Flak::TargetFile@:Flak::TargetFile.tool@:Flak::TargetFile.project@:Flak::Template@>:Flak::Template::Gl@@:!Flak::Template::Gl::Settings@B:*Flak::Template::Gl::Settings.extended@D:Flak::Template::Gl::Tasks@:Flak::FileActions@:&Flak::FileActions#rebuild_symlink@:&Flak::FileActions#remove_and_copy@:)Flak::FileActions#make_directory_for@6:)Flak::FileActions#write_erb_template@K:Flak::Template::Doc@:"Flak::Template::Doc::Settings@:+Flak::Template::Doc::Settings.extended@:9Flak::Template::Doc::Settings.settings_modifications@:3Flak::Template::Doc::Settings#doc_default_hash@:4Flak::Template::Doc::Settings#doc_plug_metadata@:Flak::Template::Doc::Tasks@%:(Flak::Template::Doc::Tasks.extended@':,Flak::Template::Doc::Tasks.task_factory@7:Flak::Template::Max@c:"Flak::Template::Max::Settings@e:+Flak::Template::Max::Settings.extended@g:Flak::Template::Max::Tasks@:Flak::Template::Cpp@:"Flak::Template::Cpp::Settings@:+Flak::Template::Cpp::Settings.extended@:1Flak::Template::Cpp::Settings#build_filename@:3Flak::Template::Cpp::Settings#release_filename@:.Flak::Template::Cpp::Settings#object_file@:/Flak::Template::Cpp::Settings#object_files@:0Flak::Template::Cpp::Settings#c_compile_cmd@:-Flak::Template::Cpp::Settings#c_link_cmd@:.Flak::Template::Cpp::Settings#c_clean_cmd@ :Flak::Template::Cpp::Tasks@*:(Flak::Template::Cpp::Tasks.extended@,:,Flak::Template::Cpp::Tasks.task_factory@<:Flak::Template::Mac@h:"Flak::Template::Mac::Settings@j:+Flak::Template::Mac::Settings.extended@l:7Flak::Template::Mac::Settings#mac_app_release_path@}:Flak::Template::Mac::Tasks@:Flak::Template::Nuke@:#Flak::Template::Nuke::Settings@:,Flak::Template::Nuke::Settings.extended@::Flak::Template::Nuke::Settings.settings_modifications@: Flak::Template::Nuke::Tasks@:Flak::Template::Maya@:#Flak::Template::Maya::Settings@:,Flak::Template::Maya::Settings.extended@::Flak::Template::Maya::Settings.settings_modifications@%:@Flak::Template::Maya::Settings#outliner_icon_build_filename@3::Flak::Template::Maya::Settings#dg_icon_build_filename@B:7Flak::Template::Maya::Settings#icon_build_filename@P: Flak::Template::Maya::Tasks@o:)Flak::Template::Maya::Tasks.extended@q:9Flak::Template::Maya::Tasks.generate_node_icon_tasks@:4Flak::Template::Maya::Tasks.generate_icon_tasks@:-Flak::Template::Maya::Tasks.task_factory@:Flak::Template::Shell@:$Flak::Template::Shell::Settings@:-Flak::Template::Shell::Settings.extended@:=Flak::Template::Shell::Settings#shell_script_destination@:!Flak::Template::Shell::Tasks@:*Flak::Template::Shell::Tasks.extended@:.Flak::Template::Shell::Tasks.task_factory@:Flak::Template::Release@<:&Flak::Template::Release::Settings@>:/Flak::Template::Release::Settings.extended@@:AFlak::Template::Release::Settings#release_script_destination@Q:3Flak::Template::Release::Settings#tar_filename@_:2Flak::Template::Release::Settings#file_to_tar@k:#Flak::Template::Release::Tasks@:,Flak::Template::Release::Tasks.extended@:0Flak::Template::Release::Tasks.task_factory@:Flak::Template::Delight@:&Flak::Template::Delight::Settings@:/Flak::Template::Delight::Settings.extended@:=Flak::Template::Delight::Settings.settings_modifications@:3Flak::Template::Delight::Settings#shader_files@:2Flak::Template::Delight::Settings#shader_file@::Flak::Template::Delight::Settings#shader_release_path@:AFlak::Template::Delight::Settings#delight_shader_compile_cmd@:8Flak::Template::Delight::Settings#delight_clean_cmd@#:#Flak::Template::Delight::Tasks@@:,Flak::Template::Delight::Tasks.extended@B:0Flak::Template::Delight::Tasks.task_factory@R:Flak::Template::MayaApp@~:&Flak::Template::MayaApp::Settings@:/Flak::Template::MayaApp::Settings.extended@:=Flak::Template::MayaApp::Settings.settings_modifications@:7Flak::Template::MayaApp::Settings#release_filename@:#Flak::Template::MayaApp::Tasks@: Flak::Template::Environment@:*Flak::Template::Environment::Settings@:3Flak::Template::Environment::Settings.extended@:AFlak::Template::Environment::Settings.settings_modifications@:?Flak::Template::Environment::Settings#destination_filepath@ :'Flak::Template::Environment::Tasks@# :0Flak::Template::Environment::Tasks.extended@% ::Flak::Template::Environment::Tasks.generate_erb_tasks@5 :;Flak::Template::Environment::Tasks.generate_copy_tasks@D :JFlak::Template::Environment::Tasks.generate_inspect_and_release_tasks@R :4Flak::Template::Environment::Tasks.task_factory@` :Flak::Template::MayaPlugin@ :)Flak::Template::MayaPlugin::Settings@ :2Flak::Template::MayaPlugin::Settings.extended@ :@Flak::Template::MayaPlugin::Settings.settings_modifications@ ::Flak::Template::MayaPlugin::Settings#release_filename@ :&Flak::Template::MayaPlugin::Tasks@ : Flak::Template::MergeEngine@X:'Flak::Template::MergeEngine#infuse@Z:2Flak::Template::MergeEngine.flatten_yaml_file@i:-Flak::Template::MergeEngine#flatten_yaml@z:7Flak::Template::MergeEngine#settings_modifications@;@ ;@ :#movie_tag@ :#figure_tag@& :#toc_block@; : #toc@L :#vfxoverflow_ribbon@Y :#create_header@e :#create_meta@r ;@ : #footer@