Class: Objc2swiftAssistant::ClassInterfaceRegion

Inherits:
ClassRootRegion show all
Defined in:
lib/objc2swift_assistant/recognizers/interface_recognizer.rb

Instance Attribute Summary collapse

Attributes inherited from ClassRootRegion

#class_name

Attributes inherited from MigrationRegion

#allowed_parent_region_types, #can_occur_in_class_decl, #configuration, #detection_line, #ending_line_number, #ending_of_root_header, #is_root_entity, #is_single_line, #parent_region, #region_identifier, #region_type, #root_header, #starting_line_number, #sub_regions

Attributes inherited from FailableProcessingElement

#error_messages

Instance Method Summary collapse

Methods inherited from ClassRootRegion

#description

Methods inherited from MigrationRegion

#add_sub_region, #brief_description, #complete, #contains_line, #dump, #dump_region_info, #generic_description, #has_failed, #resolve_ending_line_number

Methods inherited from FailableProcessingElement

#add_error, #add_warning, #has_errors, #initiailize

Constructor Details

#initialize(starting_line_number, is_root_entity) ⇒ ClassInterfaceRegion

Returns a new instance of ClassInterfaceRegion.



18
19
20
# File 'lib/objc2swift_assistant/recognizers/interface_recognizer.rb', line 18

def initialize(starting_line_number, is_root_entity )
  super(starting_line_number, is_root_entity, CLASS_INTERFACE_KEY )
end

Instance Attribute Details

#implementsObject

Returns the value of attribute implements.



16
17
18
# File 'lib/objc2swift_assistant/recognizers/interface_recognizer.rb', line 16

def implements
  @implements
end

#super_classObject

Returns the value of attribute super_class.



15
16
17
# File 'lib/objc2swift_assistant/recognizers/interface_recognizer.rb', line 15

def super_class
  @super_class
end

Instance Method Details

#extract_information(file_slice) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/objc2swift_assistant/recognizers/interface_recognizer.rb', line 22

def extract_information( file_slice )
  m = /^\s*(@interface)\s+(?<class_name>\w*)\s*:\s*(?<super_class>\w*)?\s*(<(?<implements>.*)>)?/.match(file_slice[0])
  unless m.nil?
    @class_name = m["class_name"]
    @super_class = m["super_class"]
    implements_list = m["implements"]
    @implements = implements_list.nil? ? [] : implements_list.split( /\s*,\s*/ )
    @configuration.log_verbose( "class_name = #{@class_name} super_class = #{@super_class} implements = #{@implements}")
  else
    @configuration.log_warning( "WARNING: Could not match interface declaration in #{file_slice[0]}" )
  end
end