Sha256: eb69710b565a9ed1ede0be4df5a360af6d399d67c691520cb60cced57f34db02

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

<%-
  def comma_args(args)
    args.map{|arg| arg[:name]}.join(",")
  end
  def comma_args_with_type(args)
    args.map{|arg| "#{arg[:name]}:#{arg[:type]}"}.join(",")
  end
-%>

import peto.*;

package peto
{
	class <%= class_name %>
	{
		<%- each_procedures do |name, args| -%>
		// <%=name%> methods

		public static function <%= name %>(<%= comma_args_with_type(args) %>):Object
		{
			return {
				procedure : "<%=name%>",
				args : {
				<%- args.each do |arg| -%>
					<%=arg[:name]%> : hashize(<%=arg[:name]%>),
				<%- end -%>
				}
			}
		}

		public static function <%= name %>_hash_to_args(hash_args:Object):Array
		{
			var args:Array = new Array();
			<%- args.each do |arg| -%>
			args.push(<%=arg[:type]%>.create(hash_args.<%=arg[:name]%>));
			<%- end -%>
			return args;
		}

		<%- end -%>

		public static function hashize(var:Object):Object
		{
			if ( isPrimitiveType(typeof(var)) )
				return var;
			else
				return var.toHash();
		}

		public static function isPrimitiveType(type):Boolean
		{
			[<%=as_primitive_types.join(",")%>].indexOf?(type) != -1;
		}
	}
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
peto-0.2.6 lib/templates/as_procedures.erb