class Rescodegen::ObjcHeaderStringsGenerator

Public Class Methods

new(prefix) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 6
def initialize(prefix)
    @prefix = prefix
end

Public Instance Methods

generate(singular_keys, singular_values, plural_keys, plural_values) click to toggle source
Calls superclass method
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 10
def generate(singular_keys, singular_values, plural_keys, plural_values)
    super(singular_keys, singular_values, plural_keys, plural_values)
    import_module("Foundation")
    .singular_enum(singular_keys, singular_values)
    .plural_enum(plural_keys, plural_values)
    add_c_method("NSString*", prefix("LocalizedSingularString"), "#{singular_enum_name} singularString") if singular_keys.size != 0
    add_c_method("NSString*", prefix("LocalizedPluralString"), "#{plural_enum_name} pluralString, ...") if plural_keys.size != 0
    newline
    @output
end

Protected Instance Methods

add_c_method(return_type, name, parameter_list) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 50
def add_c_method(return_type, name, parameter_list)
    newline
    @output += "#{return_type} #{name}(#{parameter_list});"
    self
end
add_cases(enum_name, keys) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 56
def add_cases(enum_name, keys)
    keys.each do |key|
        indent
        @output += "#{enum_name}_#{key},"
        newline
    end
    self
end
finish_enum() click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 65
def finish_enum
    decrement_indent_level
    indent
    @output += "};"
    newline
end
import_module(name) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 39
def import_module(name)
    @output += "@import #{name};"
    newline
end
plural_enum(keys, values) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 31
def plural_enum(keys, values)
    return self if keys.size == 0
    newline
    .start_enum(plural_enum_name, "NSInteger")
        .add_cases(plural_enum_name, keys)
    .finish_enum
end
plural_enum_name() click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 76
def plural_enum_name 
    prefix "PluralString"
end
singular_enum(keys, values) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 23
def singular_enum(keys, values)
    return self if keys.size == 0
    newline
    .start_enum(singular_enum_name, "NSInteger")
        .add_cases(singular_enum_name, keys)
    .finish_enum
end
singular_enum_name() click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 72
def singular_enum_name 
    prefix "SingularString"
end
start_enum(name, type) click to toggle source
# File lib/rescodegen/code_generator/objc_header_strings_generator.rb, line 44
def start_enum(name, type)
    indent
    @output += "typedef NS_ENUM(#{type}, #{name})"
    open_brackets
end