class ObjCGenerator::ClassInterfaceGenerator
Public Instance Methods
generate_class_header(class_name, variables)
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 15 def generate_class_header (class_name, variables) incipit = generate_incipit() @class_predefinitions = generate_import_classes(variables) @class_name = "@interface #{class_name} : NSObject <NSCopying>" @class_properties = generate_class_properties(variables) @class_methods = generate_class_methods(class_name) header_template = File.read(template_path('class_header')) class_header = ERB.new(header_template).result(binding) return incipit + class_header end
generate_class_methods(class_name)
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 38 def generate_class_methods class_name lowercase_class_name = class_name.dup lowercase_class_name[0] = lowercase_class_name[0].chr.downcase methods_definition_template = File.read(template_path('methods_definition')) methods_definition = ERB.new(methods_definition_template).result(binding) end
generate_class_properties(variables)
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 28 def generate_class_properties(variables) result = [] result = variables.map { |var| var.property_definition() } result = ObjCGenerator::vertical_align_vars( result, /( )/, 4) result = result.intersperse("\n") result.inject("") { |mem, var| mem << var } end
generate_import_classes(variables)
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 47 def generate_import_classes variables custom_objects = variables.select { | var | var.is_a? TypeCustomObject } custom_objects.inject("") { |mem, var| mem << "@class #{var.var_type};" + "\n"} end
generate_incipit()
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 8 def generate_incipit() author = "Ignazioc" incipit_template = File.read(template_path('incipit')) ERB.new(incipit_template).result(binding) end
template_path(filename)
click to toggle source
# File lib/ObjCGenerator/class_interface_generator.rb, line 4 def template_path filename File.join(File.expand_path("../..", File.dirname(__FILE__)), "templates/#{filename}.erb") end