class PolyglotIos::Serializer::Language::ObjC

Public Instance Methods

h_template() click to toggle source
# File lib/ios_polyglot_cli/serializers/languages/languages_serializer_objc.rb, line 21
        def h_template()
<<-H_TEMPLATE
#import <Foundation/Foundation.h>

@interface Language : NSObject

@property (nonatomic, strong, readonly) NSString *name;
@property (nonatomic, strong, readonly) NSString *localName;
@property (nonatomic, strong, readonly) NSString *locale;
@property (nonatomic, strong, readonly) NSString *languageCode;

@property (readonly, class) NSArray<Language *> *allLanguages;
<% @languages.each do |language| -%>
@property (readonly, class) Language *<%= language.clean_name %>;
<% end -%>

@end
H_TEMPLATE
        end
m_template() click to toggle source
# File lib/ios_polyglot_cli/serializers/languages/languages_serializer_objc.rb, line 41
        def m_template()
<<-M_TEMPLATE
#import "Language.h"

@interface Language()

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *localName;
@property (nonatomic, strong) NSString *locale;
@property (nonatomic, strong) NSString *languageCode;

@end

@implementation Language

- (instancetype)initWithName:(NSString *)name localName:(NSString *)localName locale:(NSString *)locale languageCode:(NSString *)languageCode
{
    if (self = [super init]) {
        _name = name;
        _localName = localName;
        _locale = locale;
        _languageCode = languageCode;
    }
    return self;
}

<% @languages.each do |language| -%>
+ (Language *)<%= language.clean_name %>
{
    return [[Language alloc] initWithName:@"<%= language.name %>" localName:@"<%= language.local_name %>" locale:@"<%= language.locale %>" languageCode:@"<%= language.code %>"];
}

<% end -%>
+ (NSArray<Language *> *)allLanguages 
{
    return @[
<% @languages.each_with_index do |language, i| -%>
        Language.<%= language.clean_name %><%= i == (@languages.size - 1) ? "" : "," %>
<% end -%>
    ];
}

@end
M_TEMPLATE
        end
render() click to toggle source
# File lib/ios_polyglot_cli/serializers/languages/languages_serializer_objc.rb, line 8
def render()
  h_file = ERB.new(h_template, nil, '-').result(binding)
  m_file = ERB.new(m_template, nil, '-').result(binding)
  return h_file, m_file
end
save(sources_path) click to toggle source
# File lib/ios_polyglot_cli/serializers/languages/languages_serializer_objc.rb, line 14
def save(sources_path)
  FileUtils.mkdir_p sources_path unless File.exist? sources_path
  h_file, m_file = render()
  File.write(File.join(sources_path, "Language.h"), h_file)
  File.write(File.join(sources_path, "Language.m"), m_file)
end