Sha256: eeb468e9bd45b8829f1e56f2ccaec0bc8f9ebe29aed5216d96e779fae8db21e7

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

<%- name = @target[:name].camelize -%>
<%- args = @target[:args] -%>
import peto.*;

package peto
{
	class <%= name %>
	{
		public static function create(hash_args):<%=name%>
		{
			var instance:<%= name %> = new <%= name %>;
			<%- args.each do |arg| -%>
				<%- if rb_primitive_types.include?(arg[:type].constantize) -%>
			instance.<%=arg[:name]%> = hash_args.<%= arg[:name]%>;
				<%- elsif arg[:array_type] -%>
			for each ( var arg:Object in hash_args.<%= arg[:name]%>)
				instance.<%=arg[:name]%>.push(<%=arg[:array_type]%>.create(arg));
				<%- else -%>
			instance.<%=arg[:name]%> = <%=arg[:type]%>.create(hash_args.<%= arg[:name]%>);
				<%- end -%>
			<%- end -%>
			return instance;
		}

		public function <%=name%>(<%= args.map{|arg| "#{arg[:name]}:#{arg[:type]}"}.join(",") %>)
		{
		<%- args.each do |arg| -%>
			this.<%= arg[:name] %> = <%= arg[:name] %>;
		<%- end -%>
		}

		<%- args.each do |arg| -%>
		private var <%= arg[:name] %>:<%= arg[:type] %>;
		public function get <%= arg[:name] %>():<%= arg[:type] %>
		{
			return <%= arg[:name] %>;
		}
		public function set <%= arg[:name] %>(value:<%= arg[:type] %>)
		{
			<%= arg[:name] %> = value;
		}
		<%- end -%>

		public function toHash():Object
		{
			var hash:Object = new Object;
			<%- args.each do |arg| -%>
				<%- if rb_primitive_types.include?(arg[:type].constantize) -%>
			hash_args["<%= arg[:name]%>"] = <%=arg[:name]%>;
				<%- elsif arg[:array_type] -%>
			for each ( var arg:<%= arg[:array_type]%> in <%= arg[:name]%>)
				hash_args["<%= arg[:name]%>"] = <%=arg[:name]%>.toHash():
				<%- else -%>
			hash_args["<%= arg[:name]%>"] = <%=arg[:name]%>.toHash():
				<%- end -%>
			<%- end -%>
			return hash;
		}
	}
}

Version data entries

1 entries across 1 versions & 1 rubygems

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