Module: RubyToBlock

Extended by:
ActiveSupport::Concern
Included in:
SourceCode
Defined in:
app/models/concerns/ruby_to_block.rb,
app/models/concerns/ruby_to_block/block.rb,
app/models/concerns/ruby_to_block/context.rb,
app/models/concerns/ruby_to_block/block/do.rb,
app/models/concerns/ruby_to_block/block/end.rb,
app/models/concerns/ruby_to_block/formatter.rb,
app/models/concerns/ruby_to_block/block/base.rb,
app/models/concerns/ruby_to_block/block/else.rb,
app/models/concerns/ruby_to_block/block/null.rb,
app/models/concerns/ruby_to_block/block/text.rb,
app/models/concerns/ruby_to_block/block/value.rb,
app/models/concerns/ruby_to_block/block/ruby_p.rb,
app/models/concerns/ruby_to_block/block/character.rb,
app/models/concerns/ruby_to_block/block/looks_say.rb,
app/models/concerns/ruby_to_block/block/control_if.rb,
app/models/concerns/ruby_to_block/block/looks_hide.rb,
app/models/concerns/ruby_to_block/block/looks_show.rb,
app/models/concerns/ruby_to_block/block/sound_play.rb,
app/models/concerns/ruby_to_block/block/math_number.rb,
app/models/concerns/ruby_to_block/block/motion_move.rb,
app/models/concerns/ruby_to_block/block/motion_turn.rb,
app/models/concerns/ruby_to_block/block/sensing_hit.rb,
app/models/concerns/ruby_to_block/block/control_loop.rb,
app/models/concerns/ruby_to_block/block/looks_vanish.rb,
app/models/concerns/ruby_to_block/block/motion_set_x.rb,
app/models/concerns/ruby_to_block/block/motion_set_y.rb,
app/models/concerns/ruby_to_block/block/ruby_comment.rb,
app/models/concerns/ruby_to_block/block/character_new.rb,
app/models/concerns/ruby_to_block/block/control_beark.rb,
app/models/concerns/ruby_to_block/block/control_sleep.rb,
app/models/concerns/ruby_to_block/block/motion_self_x.rb,
app/models/concerns/ruby_to_block/block/motion_self_y.rb,
app/models/concerns/ruby_to_block/block/motion_set_x_y.rb,
app/models/concerns/ruby_to_block/block/motion_turn_xy.rb,
app/models/concerns/ruby_to_block/block/operators_true.rb,
app/models/concerns/ruby_to_block/block/ruby_statement.rb,
app/models/concerns/ruby_to_block/block/character_event.rb,
app/models/concerns/ruby_to_block/block/events_on_click.rb,
app/models/concerns/ruby_to_block/block/events_on_start.rb,
app/models/concerns/ruby_to_block/block/operators_false.rb,
app/models/concerns/ruby_to_block/block/ruby_expression.rb,
app/models/concerns/ruby_to_block/block/motion_set_angle.rb,
app/models/concerns/ruby_to_block/block/require_smalruby.rb,
app/models/concerns/ruby_to_block/block/motion_self_angle.rb,
app/models/concerns/ruby_to_block/block/operators_compare.rb,
app/models/concerns/ruby_to_block/block/hardware_operation.rb,
app/models/concerns/ruby_to_block/block/looks_next_costume.rb,
app/models/concerns/ruby_to_block/block/motion_change_x_by.rb,
app/models/concerns/ruby_to_block/block/motion_change_y_by.rb,
app/models/concerns/ruby_to_block/block/motion_go_to_mouse.rb,
app/models/concerns/ruby_to_block/block/motion_rotate_left.rb,
app/models/concerns/ruby_to_block/block/sensing_reach_wall.rb,
app/models/concerns/ruby_to_block/block/character_operation.rb,
app/models/concerns/ruby_to_block/block/motion_rotate_right.rb,
app/models/concerns/ruby_to_block/block/sound_preset_sounds.rb,
app/models/concerns/ruby_to_block/block/hardware_led_turn_on.rb,
app/models/concerns/ruby_to_block/block/looks_switch_costume.rb,
app/models/concerns/ruby_to_block/block/character_method_call.rb,
app/models/concerns/ruby_to_block/block/hardware_led_turn_off.rb,
app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb,
app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb,
app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb,
app/models/concerns/ruby_to_block/block/motion_go_to_character.rb,
app/models/concerns/ruby_to_block/block/hardware_rgb_led_turn_off.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_action.rb,
app/models/concerns/ruby_to_block/block/motion_set_rotation_style.rb,
app/models/concerns/ruby_to_block/block/motion_turn_if_reach_wall.rb,
app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb,
app/models/concerns/ruby_to_block/block/hardware_neo_pixel_set_rgb.rb,
app/models/concerns/ruby_to_block/block/hardware_rgb_led_set_color.rb,
app/models/concerns/ruby_to_block/block/motion_point_towards_mouse.rb,
app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb,
app/models/concerns/ruby_to_block/block/motion_point_towards_character.rb,
app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_sensor_value.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_action_with_sec.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_button_pressed_or_released.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_led_turn_on_or_off.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb,
app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_set_speed.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_dc_motor_power_ratio.rb,
app/models/concerns/ruby_to_block/block/hardware_smalrubot_dc_motor_set_power_ratio.rb

Overview

Rubyのソースコードをブロックに変換するモジュール

Defined Under Namespace

Modules: Block Classes: Context, Formatter

Instance Method Summary collapse

Instance Method Details

#to_blocksObject

XML形式のブロックに変換する



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/models/concerns/ruby_to_block.rb', line 12

def to_blocks
  fail if data == '__FAIL__'

  context = Context.new(data.lines)
  while (line = context.next_line)
    line.chomp!
    next if line.strip.empty?
    md = Block.statement_regexp.match(line)
    next if Block.process_match_data(md, context)
    Block.process_match_data(md, context, 'ruby_statement')
  end

  make_xml(context)
end