44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Cheetah
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Cheetah
		
	
	
	
| <% if cls.type == 'object' || (cls.type == 'hash' && cls.properties.length > 0) -%>
 | |
| 
 | |
| # <%= block_comment(cls.description, 0, 1) %>
 | |
| class <%= cls.generated_class_name %><% if cls.base_ref %> < <%= cls.base_ref.generated_type %><% end %>
 | |
|   include Google::Apis::Core::Hashable
 | |
| <%   for property in cls.properties.values -%>
 | |
| 
 | |
|   # <%= block_comment(property.description, 2, 1) %>
 | |
|   # Corresponds to the JSON property `<%= property.name %>`
 | |
| <% if property.format == 'byte' -%>
 | |
|   # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
| <% end -%>
 | |
|   # @return [<%= property.generated_type %>]
 | |
|   attr_accessor :<%= property.generated_name %>
 | |
| <%     if property.type == 'boolean' -%>
 | |
|   alias_method :<%= property.generated_name %>?, :<%= property.generated_name %>
 | |
| <%     end -%>
 | |
| <%   end -%>
 | |
| 
 | |
|   def initialize(**args)
 | |
| <%   if cls.discriminant -%>
 | |
|     @<%= cls.properties[cls.discriminant].generated_name %> = '<%= cls.discriminant_value %>'
 | |
| <%   end -%>
 | |
|      update!(**args)
 | |
|   end
 | |
| 
 | |
|   # Update properties of this object
 | |
|   def update!(**args)
 | |
| <%   for property in cls.properties.values -%>
 | |
|     @<%= property.generated_name %> = args[:<%= property.generated_name %>] if args.key?(:<%= property.generated_name %>)
 | |
| <%   end -%>
 | |
|   end
 | |
| <%   for child_class in cls.properties.values -%>
 | |
| <%     if child_class._ref.nil? -%>
 | |
| <%= indent(include('class', :cls => child_class, :api => api), 2) -%>
 | |
| <%     end -%>
 | |
| <%   end -%>
 | |
| end
 | |
| <% elsif cls.items && cls.items._ref.nil? -%>
 | |
| <%= include('class', :cls => cls.items, :api => api) -%>
 | |
| <% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%>
 | |
| <%= include('class', :cls => cls.additional_properties, :api => api) -%>
 | |
| <% end -%>
 |