Class: Rescodegen::ObjcMainStringsGenerator
- Inherits:
-
StringsGenerator
- Object
- StringsGenerator
- Rescodegen::ObjcMainStringsGenerator
- Defined in:
- lib/rescodegen/code_generator/objc_main_strings_generator.rb
Instance Method Summary collapse
- #add_cases(keys, values) ⇒ Object
- #add_default_case ⇒ Object
- #finish_case ⇒ Object
- #generate(keys, values) ⇒ Object
- #import_header(name) ⇒ Object
-
#initialize(prefix) ⇒ ObjcMainStringsGenerator
constructor
A new instance of ObjcMainStringsGenerator.
- #localized_string(value) ⇒ Object
- #return_value(value) ⇒ Object
- #start_c_method(return_type, name, parameter_type, parameter_name) ⇒ Object
- #start_case(key) ⇒ Object
- #start_default_case ⇒ Object
- #start_switch(value) ⇒ Object
Constructor Details
#initialize(prefix) ⇒ ObjcMainStringsGenerator
Returns a new instance of ObjcMainStringsGenerator.
6 7 8 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 6 def initialize(prefix) @prefix = prefix end |
Instance Method Details
#add_cases(keys, values) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 44 def add_cases(keys, values) i = 0 until i == keys.size start_case(keys[i]) .return_value(localized_string(values[i])) .finish_case i += 1 end add_default_case self end |
#add_default_case ⇒ Object
56 57 58 59 60 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 56 def add_default_case start_default_case .return_value("@\"\"") .finish_case end |
#finish_case ⇒ Object
77 78 79 80 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 77 def finish_case decrement_indent_level self end |
#generate(keys, values) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 10 def generate(keys, values) super(keys, values) enum_name = prefix "SingularString" newline .import_header(prefix("Strings.h")) .newline .start_c_method("NSString*", prefix("LocalizedSingularString"), enum_name, "singularString") .start_switch("singularString") .add_cases(keys.map { |k| enum_name + "_" + k }, values) .close_brackets .close_brackets .newline @output end |
#import_header(name) ⇒ Object
25 26 27 28 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 25 def import_header(name) @output += "#import \"#{name}\"" self end |
#localized_string(value) ⇒ Object
89 90 91 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 89 def localized_string(value) return "NSLocalizedString(@\"#{value}\", @\"\")" end |
#return_value(value) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 82 def return_value(value) indent @output += "return #{value};" newline self end |
#start_c_method(return_type, name, parameter_type, parameter_name) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 30 def start_c_method(return_type, name, parameter_type, parameter_name) newline @output += "#{return_type} #{name}(#{parameter_type} #{parameter_name})" open_brackets self end |
#start_case(key) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 62 def start_case(key) indent @output += "case #{key}:" newline increment_indent_level end |
#start_default_case ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 69 def start_default_case indent @output += "default:" newline increment_indent_level self end |
#start_switch(value) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/rescodegen/code_generator/objc_main_strings_generator.rb', line 37 def start_switch(value) indent @output += "switch (#{value})" open_brackets self end |