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