smalruby/smalruby-editor

View on GitHub
app/models/concerns/ruby_to_block/block/motion_go_to_character.rb

Summary

Maintainability
A
1 hr
Test Coverage
# -*- coding: utf-8 -*-
module RubyToBlock
  module Block
    class MotionGoToCharacter < CharacterMethodCall
      blocknize '^\s*' + CHAR_RE + 'go_to\(' + CHAR_NAME_RE + '\)\s*$',
                statement: true

      def self.process_match_data(md, context)
        md2 = regexp.match(md[type])

        name = md2[2]
        name.strip!
        c = context.characters[name]
        return false unless c

        block = new(fields: { CHAR: name })
        _, context.current_block =
          *add_child_or_create_character_new_block(context, md2[1], block)

        true
      end
    end
  end
end