lib/common/templates/ios/strings.m.template
<%
//
// Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License").
// You may not use this file except in compliance with the License.
// A copy of the License is located at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// or in the "license" file accompanying this file. This file is distributed
// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the License for the specific language governing
// permissions and limitations under the License.
%>
//
// <%= this.destination %>
//
<%
// for backward compatibility we need to have the user explicitly hide it
var showFileHeader = (this.options && this.options.hasOwnProperty('showFileHeader')) ? this.options.showFileHeader : true;
if(showFileHeader) {
print("// Do not edit directly\n");
print("// Generated on " + new Date().toUTCString());
}
%>
//
#import "<%= this.className %>.h"
<% var props = _.filter(allProperties, this.filter); %>
<% _.each(props, function(prop) { %>
NSString * const <%= prop.name %> = <%= prop.value %>;<% }); %>
@implementation <%= this.className %>
+ (NSArray *)values {
static NSArray* array;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
array = @[
<%= props.map(buildProperty).join(',\n') %>
];
});
return array;
}
@end
<% function buildProperty(prop) {
var to_ret = '@{\n';
to_ret += ' ' + '@"value": ' + prop.value + ',\n';
to_ret += ' ' + '@"name": @"' + prop.name + '",\n';
for(var name in prop.attributes) {
if (prop.attributes[name]) {
to_ret += ' ' + '@"' + name + '": @"' + prop.attributes[name] + '",\n';
}
}
// remove last comma
return to_ret.slice(0, -2) + '\n' + ' ' + '}';
} %>